我需要一个将字符串转换为日期时间的方法。
日期时间的格式必须为dd/MM/yyyy
如果字符串采用任何其他格式,则该方法将返回null。
到目前为止,这是我的照片:
private DateTime? StringToDateTime(string value)
{
DateTime? Result = null;
DateTime test = DateTime.Now.Date;
if (DateTime.TryParseExact(value, "dd/MM/yyyy", System.Globalization.CultureInfo.InstalledUICulture, System.Globalization.DateTimeStyles.None, out test))
Result = test;
return Result;
}
并测试它我用这个
private void button1_Click(object sender, EventArgs e)
{
string value = "01/01/2015";
DateTime? test = StringToDateTime(value);
if (test == null)
MessageBox.Show("invalid date entered");
else
MessageBox.Show(test.ToString());
}
现在问题是TryParseExact
总是失败。
我也尝试"dd/mm/yyyy"
作为格式,但结果相同。
所以我必须在这里做错事。
有没有人有一个例子如何使用DateTime.TryParseExact
或者有另一种方法吗?
编辑:这不是重复,因为“重复”链接建议使用TryParseExact,而我的问题从一开始就使用它,并询问为什么它不起作用
答案 0 :(得分:4)
将您的代码更改为:
DateTime? Result = null;
DateTime test = DateTime.Now.Date;
if (DateTime.TryParseExact(value, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out test))
Result = test;
更改是使用 CultureInfo.InvariantCulture 而不是 CultureInfo.InstalledUICulture 。