繁体   English   中英

DateTime.ParseExact赋予String未被识别为有效的DateTime。

[英]DateTime.ParseExact gives String was not recognized as a valid DateTime.

我正在尝试将日期字符串解析为DateTime变量。 我发现ParseExact是这样做的方法,但我试试这个我得到错误:

字符串未被识别为有效的DateTime。

string timeFormat = "dd-MM-yyyy hh:mm:ss";
DateTime startDate = DateTime.ParseExact(reader["startdate"].ToString(), timeFormat, CultureInfo.InvariantCulture);
DateTime nextDate = DateTime.ParseExact(reader["nextdate"].ToString(), timeFormat, null);

我已尝试使用null (恰好在另一页上工作)和CultureInfo.InvariantCulture

reader["startdate"].ToString()输出:01-08-2012 15:39:09

reader["nextdate"].ToString()输出:01-08-2012 15:39:09

我认为它应该有效,但事实并非如此。

有人知道出了什么问题? :)

你在格式字符串中使用hh 这是一个12小时的“一天一小时”字段。 值15不在范围内......

你想要HH ,这是24小时的说明符。

有关详细信息,请参阅MSDN自定义日期和时间格式字符串文档

很可能是由于您的服务器区域设置和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" />

但请确保这不会与您的应用程序发生冲突

试试这个有效

DateTime.ParseExact("01-08-2012 15:36:25", "dd-MM-yyyy HH:mm:ss", null);

我不确定这是否有帮助但是我使用了本文中的确切代码并且它对我有用,因为DateTime.ParseExact(dat,“dd / MM / yyy HH:MM”,CultureInfo.InvariantCulture,System.Globalization.DateTimeStyles。没有)对我不起作用。

阅读本文我刚刚在网上发布: http//rochcass.wordpress.com/2012/08/27/error-string-was-not-recognized-as-a-valid-datetime-solution/#more-350

暂无
暂无

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

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