I think one good way is to try to tackle the underlying problem that caused the CAST to be generated. It is better to retrieve DATE/DATETIME/DATETIME2 value into C# DateTime properties and then apply the formatting based on needed format/culture.
I think the default string representation of a time depends on both instance language and its default date representation. First can be seen in instance properties:
The second is specified in CAST/CONVERT documentation:
Default for datetime and smalldatetime - mon dd yyyy hh:miAM (or PM)
Both language and datetime format for a session can be changed using SET LANGUAGE and/or SET DATEFORMAT, but the later seems to affect only how datetimes are parsed, not how CAST displays the formatted date.