客户端使用我们的应用程序从我们的服务器下载文件后,该应用程序对从服务器传来的日期字符串执行 ParseExact
,格式为:yyyy/mm/dd HH :mm:ss
.
经过大量的混淆,我在一些日志中注意到客户端系统上的日期是 19/7/2554
。事实证明这是泰国的有效时间,Windows 默认为佛教时代时间系统,即 2554 年。
我的解析精确是用不变的文化完成的,我怀疑这可能是问题所在,但我认为文化指的是您试图解析的格式?
我收到的异常消息是:String 未被识别为有效的 DateTime
因为星期几不正确
最佳答案
CultureInfo 还包含日历信息。如果 TryParseExact 方法可以访问正确的日历信息,那么它将能够正确解析日期。
http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.calendar.aspx
如果将 InvariantCulture CultureInfo 替换为 Thai CultureInfo,则将使用该文化的默认日历。
或者,您可以使用不需要 CultureInfo 的 TryParse 方法的重载。在这种情况下使用的区域性将取决于用户在 Windows 中的区域设置。
关于c# - 泰国/佛教时代时间的 DateTime.ParseExact 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6868505/