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

经过一番困惑之后,我在一些日志中注意到客户端系统上的日期是19/7/2554。事实证明,这是一个有效的时间,例如在泰国,Windows默认使用佛教时代的时间系统,即2554年。

我的解析准确是用不变的区域性完成的,我怀疑这可能是问题所在,但我认为区域性指的是您要解析的格式?

我收到的异常消息是:字符串不被识别为有效的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/

10-15 16:43