在不同平台上的日期时间问题(.NET 2.0)
-
20-08-2019 - |
题
在32位操作系统,具有Intel处理器, 例如日期时间2009年2月17日12:00:00 AM 请注意,它是:毫米/ DD // YYYY
在一个64位操作系统,与AMD处理器, 例如日期时间17-02-2009 00:00:00
现在,当我尝试分析1格式,它抛出第2个平台上的错误。 这意味着 - DateTime.Parse(“2009年2月17日12:00:00 AM”) - 抛出一个错误 - 不能转换。 然而,在同一平台上, DateTime.Parse( “17/2/2009 12:00:00 AM”)的作品!这意味着DD / MM细,MM / DD是不
是什么原因造成的? 64位操作系统?处理器?
我如何摆脱这个问题?
解决方案
DateTime是否本身没有格式。您解析,或将其格式化成字符串。 (这就像号码 - 整数并不存储在十六进制或十进制,他们只是整数,您可以用十六进制或十进制格式他们,但价值本身只是一个数字。)
的格式将取决于操作系统的培养物(或更准确地,该线程的培养,这通常是一样的操作系统中的一个)。
我个人喜欢明确设置我用两种解析或格式化的格式,除非我实际显示的字符串给用户,知道文化是合适的了。
其他提示
检查“日期和时间格式”中的“区域和语言选项”控制面板。
另外,如果你想要的DateTime生成一个特定的格式,不只是简单的打电话的ToString(),但它传递的参数说明你想要的格式。同样,如果你知道你问它来解析日期的格式,请拨打TryParseExact(),并告诉它你所提供的格式。
另请参见MSDN的标准日期和时间格式字符串
不隶属于 StackOverflow