我想解析DateTime,这里是我的代码:
var datastring =p1.ItemArray[2].ToString();
var format = "dd.MM.yyyy";
var date = DateTime.ParseExact(datastring,format,CultureInfo.InvariantCulture);
p1 - DataRow
,p1.ItemArray[2]
我有DateTime值
在观看p1.ItemArray[2]
中有这个值:"09/03/2012 00:00:00"
他的类型是DateTime
解析抛出错误后:字符串未被识别为有效的DateTime。
答案 0 :(得分:2)
您可以在格式中包含时间,因为您尝试解析的字符串似乎包含时间:
var format = "dd/MM/yyyy hh:mm:ss";
我还建议您使用TryParseExact方法,因为它提供了更好的防御性编程模式,而不是抛出异常。
答案 1 :(得分:2)
恕我直言,你应该使用
var datastring = p1.ItemArray[2].ToString();
var format = "dd/MM/yyyy HH:mm:ss";
var date = DateTime.ParseExact(datastring, format, CultureInfo.InvariantCulture);
使用ParseExact
,您必须提供字符串
答案 2 :(得分:1)
改变这个:
var format = "dd.MM.yyyy";
有了这个:
var format = "dd/MM/yyyy HH:mm:ss";
答案 3 :(得分:0)
因为parseExact将期望接收您指定的格式“dd.MM.yyyy”。你可以尝试:
var format = "dd.MM.yyyy";
var datastring =p1.ItemArray[2].ToString(format);
答案 4 :(得分:0)
很可能是由于您的服务器区域设置和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" />
但请确保这不会与您的应用程序发生冲突