【问题标题】:Have Win8 and Win7 different CultureInfo on the same culture? (different dateSeparator)Win8 和 Win7 在同一文化上有不同的 CultureInfo 吗? (不同的日期分隔符)
【发布时间】: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。然后,由于文化设置,事情不太可能破裂。当您向用户显示日期时,请使用文化设置。在代码中传递日期时,请使用不变的文化和/或自定义格式。

标签: c# windows visual-studio-2010 cultureinfo culture


【解决方案1】:

当我们了解到可用的更好数据时,我们会更改数据。你永远不应该假设数据是相同的。最佳实践是确保使用标准格式(日期为 ISO 8601)存储或传输任何持久数据。本地化数据应该是短暂的。

顺便说一下,控制面板设置只允许覆盖用户区域设置,但如果用户区域设置恰好是有问题的文化,您可以进行更改(应用程序不应假设数据不存在的另一个原因变化)。

【讨论】:

    猜你喜欢
    • 2019-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 1970-01-01
    • 1970-01-01
    • 2015-04-20
    • 1970-01-01
    相关资源
    最近更新 更多