泰国/佛教时代的DateTime.ParseExact问题

时间:2011-07-29 04:04:04

标签: c# parsing datetime thai

客户端使用我们的应用程序从我们的服务器下载文件后,该应用会在日期字符串上执行ParseExact,该日期字符串以下列形式从服务器下载:yyyy/mm/dd HH:mm:ss

在经历了很多混乱之后,我在一些日志中注意到客户端系统上的日期是19/7/2554。事实证明,这是一个有效的时间,如在泰国,Windows默认为佛教时代的时间系统,即2554年。

我的解析完全由一个不变的文化完成,我怀疑这可能是问题,但我认为文化指的是你试图解析的格式?

我收到的异常消息是:字符串未被识别为有效DateTime,因为星期几不正确

1 个答案:

答案 0 :(得分:1)

CultureInfo还包含日历信息。如果TryParseExact方法可以访问正确的日历信息,那么它将能够正确地解析日期。

http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.calendar.aspx

如果您将InvariantCulture CultureInfo替换为Thai CultureInfo,则将使用该文化的默认日历。

或者,您可以使用不需要CultureInfo的TryParse方法的重载。在这种情况下使用的文化将取决于用户在Windows中的区域设置。