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 吗? (不同的日期分隔符)的主要内容,如果未能解决你的问题,请参考以下文章

thinkpad T440P 如何将原装的win8 64位 换成win7 32位的系统

如何在GPT分区上安装WIN7

win7,win8,win10实现共享,须建立家庭组

VB6.0编写的程序在win7或win8上可以用吗

如何安装win7+win8双系统

怎样把win7的雅黑字体换为win8的雅黑字体