![](/img/trans.png)
[英]String was not recognized as a valid DateTime on DateTime.ParseExact
[英]DateTime.ParseExact give the error: String was not recognized as a valid DateTime
我想解析DateTime,这是我的代码:
var datastring =p1.ItemArray[2].ToString();
var format = "dd.MM.yyyy";
var date = DateTime.ParseExact(datastring,format,CultureInfo.InvariantCulture);
p1.ItemArray[2]
是DataRow
,在p1.ItemArray[2]
我有DateTime的值
在手表p1.ItemArray[2]
中,此值是: "09/03/2012 00:00:00"
其类型为DateTime
解析后引发错误: 无法将字符串识别为有效的DateTime。
您可以在格式中包含时间,因为您要解析的字符串似乎包含时间:
var format = "dd/MM/yyyy hh:mm:ss";
我也建议您使用TryParseExact方法,因为它提供了更好的防御性编程模式,而不是引发异常。
恕我直言,你应该使用
var datastring = p1.ItemArray[2].ToString();
var format = "dd/MM/yyyy HH:mm:ss";
var date = DateTime.ParseExact(datastring, format, CultureInfo.InvariantCulture);
使用ParseExact
您必须提供字符串中包含的确切日期格式
更改此:
var format = "dd.MM.yyyy";
有了这个:
var format = "dd/MM/yyyy HH:mm:ss";
因为parseExact将期望接收与您指定的格式相同的“ dd.MM.yyyy”。 你可以试试:
var format = "dd.MM.yyyy";
var datastring =p1.ItemArray[2].ToString(format);
最有可能是由于您的服务器语言环境和UI语言环境之间的差异
一种更简单的方法是在web.config中指定全球化详细信息
喜欢
<configuration>
<system.web>
<globalization culture="en-GB"/>
</system.web>
</configuration>
或更详细
<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="en-GB" uiCulture="en-GB" />
但是请确保这不会与您的应用程序发生冲突
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.