客户使用我们的应用程序从我们的服务器下载文件后,该应用程序会对日期字符串执行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/