繁体   English   中英

DateTime.ParseExact给出错误:字符串未被识别为有效的DateTime

[英]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.

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