繁体   English   中英

字符串为15/07/15时,字符串未被识别为有效的DateTime

[英]String was not recognized as a valid DateTime when string is 13/07/15

我有一个字符串date = 13/07/15这种格式,我想将其转换为DateTime,但是出现以下错误

String was not recognized as a valid DateTime.

我该怎么做才能转换为日期时间。 我已经试过了

DateTime dt = Convert.ToDateTime(date);

从来没有注意到过不同的文化以不同的格式来编写数据和时间吗? 尽管您使用的格式在大多数西欧国家有效,但在美国却是垃圾。

要解决此问题,您可以要求系统提供当前日期和时间格式:

var currentCulture = System.Globalization.CultureInfor.CurrentCulture
IFormatProvider dateTimeFormat = currentCulture.DateTimeFormat;
string dateTxt = @"13/7/2015";
System.DateTime myDate = System.DateTime.Parse(dateTxt, dateTimeFormat);

如果您的计算机具有正确的区域性,那应该可以解决问题。

如果您想了解很多文化,请不要要求当前的文化,而应使用System.Globalization.CultureInfo的构造函数之一

不明智,因为1/3/2015是3月1日还是1月3日?

这样吧

DateTime date = DateTime.ParseExact(s, "dd/MM/yy", null);

来源: DateTime.ParseExact

您的代码DateTime dt = Convert.ToDateTime(date); 是完美的。 在我看来,该错误出在您的数据库中,因为如果得到整年,它将把它转换为日期。 请在您的数据库中检查它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM