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

时间:2014-05-23 08:32:54

标签: c# date

我无法更改日期格式,我尝试了2种方法,但输出为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"));

2 个答案:

答案 0 :(得分:8)

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);

答案 1 :(得分:0)

您使用的是错误的格式说明符,您的日期字符串使用的是一位数日,但您使用的是leading 0 format specifierdd)。这要求您的日期字符串将日期格式化为01-31

您需要使用允许单位数天的non-leading 0 format specifierd),即

 d-MMM-yyyy

请参阅Custom Date and Time Format Strings