C# 如何将日期格式从dd MMM yyyy更改为yyyy MM dd

C# 如何将日期格式从dd MMM yyyy更改为yyyy MM dd,c#,date,C#,Date,我无法更改日期格式,我尝试了两种方法,但输出为0001-01-01 方法1 hf_test.Value = "1-Jul-2013"; DateTime date; var success = DateTime.TryParseExact(hf_test.Value, "dd-MMM-yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out date); Resopnse.Write(d

我无法更改日期格式,我尝试了两种方法,但输出为
0001-01-01

方法1

hf_test.Value = "1-Jul-2013";

DateTime date;
var success = DateTime.TryParseExact(hf_test.Value,
    "dd-MMM-yyyy",
    CultureInfo.InvariantCulture,
    DateTimeStyles.None,
    out date);

    Resopnse.Write(date.ToString("yyyy-MM-dd"));
方法2

        hf_test.Value = "1-Jul-2013";
        Alert.Show(DateTime.ParseExact(hf_test.Value , "dd-MMM-yyyy", culture).ToString("yyyy-MM-dd"));

0001-01-01
的输出意味着无法解析您的日期。原因是您使用了
dd
而不是
d
作为字符串,如
“1-Jul-2013”

所以使用

DateTime date;
bool success = DateTime.TryParseExact(hf_test.Value,
                            "d-MMM-yyyy",
                            CultureInfo.InvariantCulture,
                            DateTimeStyles.None,
                            out date);

您使用了错误的格式说明符,您的日期字符串使用的是一位数的日期,但您使用的是(
dd
)。这要求日期字符串的格式为
01-31

您需要使用(
d
)来允许一位数的天数,即

 d-MMM-yyyy

参见

是否检查了
success
的值?在该日期为“output”时,
success
的值将为
false