Win8 和 Win7 在同一文化上有不同的 CultureInfo 吗? (不同的日期分隔符)
Posted
技术标签:
【中文标题】Win8 和 Win7 在同一文化上有不同的 CultureInfo 吗? (不同的日期分隔符)【英文标题】:Have Win8 and Win7 different CultureInfo on the same culture? (different dateSeparator) 【发布时间】:2014-07-24 15:53:03 【问题描述】:当datepicker
Uncaught Unexpected literal at position 2
突然出现意外错误时,我正在将我的所有信息和项目从 Win7 移动到 Win8。
我将 CurrentCulture 设置为 es-VE
,如下所示:
System.Threading.Thread.CurrentThread.CurrentCulture = New CultureInfo("es-VE")
在我的调试过程中发现问题出在我的CultureInfo.CurrentCulture.DateTimeFormat
Win7 是这样设置的:
Win8 是这样设置的:
如您所见,dateSeparator
发生了变化,这引发了javascript
异常,导致其预期为 dd/mm/yyyy 而不是 dd-mm-yyyy
关于如何解决这个问题的任何想法?
这是微软的错误吗?
我做错了吗?
提前致谢!
更新: 控制面板,两台机器上的设置都是一样的。
【问题讨论】:
可以查看控制面板吗? @DanielA.White 在两台机器上都一样,如果我强制设置也没关系。 为什么投反对票?我会很高兴知道原因... 请分享您的 javascript 方面。也许可以改进。 任何时候将日期作为字符串传递给 JavaScript,都应该使用 custom format specifier 而不是 culture specific ones。然后,由于文化设置,事情不太可能破裂。当您向用户显示日期时,请使用文化设置。在代码中传递日期时,请使用不变的文化和/或自定义格式。 【参考方案1】:当我们了解到可用的更好数据时,我们会更改数据。你永远不应该假设数据是相同的。最佳实践是确保使用标准格式(日期为 ISO 8601)存储或传输任何持久数据。本地化数据应该是短暂的。
顺便说一下,控制面板设置只允许覆盖用户区域设置,但如果用户区域设置恰好是有问题的文化,您可以进行更改(应用程序不应假设数据不存在的另一个原因变化)。
【讨论】:
以上是关于Win8 和 Win7 在同一文化上有不同的 CultureInfo 吗? (不同的日期分隔符)的主要内容,如果未能解决你的问题,请参考以下文章