我无法更改日期格式,我尝试了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"));
答案 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 specifier(dd
)。这要求您的日期字符串将日期格式化为01-31
。
您需要使用允许单位数天的non-leading 0 format specifier(d
),即
d-MMM-yyyy