代码之家  ›  专栏  ›  技术社区  ›  R4cOOn

Silverlight使用字符串(“g”)作为格式在Mac而非PC上显示时区信息

  •  0
  • R4cOOn  · 技术社区  · 14 年前

    我有一个Silverlight应用程序显示一些数据。 我使用datetimeconverter转换 DateTime 价值转化为 String . 我用 dateTime.ToString("G") 格式化然后我回来 01/01/2010 12:01 或者类似的。 到现在为止,一直都还不错。

    但是,Mac上的相同应用程序显示 01/01/2010 12:01 +02:00 . 这是CET与当前的UTC时差的时间(因此,UTC是 10:01 )

    怎么回事?Mac电脑上有特殊设置吗?我播放了系统设置并删除了 CET 和其他的文本格式,但我仍然得到完全相同的结果。 这是虫子吗?

    编辑:当我按照答案中的建议显示格式模式时,我已经 HH:mm:ss 在PC上 HH:mm:ss zzzz 在Mac上。 干杯。

    2 回复  |  直到 14 年前
        1
  •  0
  •   Jon Skeet    14 年前

    这表明 LongTimePattern 在Mac上是不同的。(G格式说明符表示“短日期和长时间模式”。)

    尝试显示 CultureInfo.CurrentCulture.DateTimeFormat.LongTimePattern 在两个平台上,看看他们说什么。

        2
  •  1
  •   R4cOOn    14 年前

    尽管在Windows上,更改控制面板中的格式会更改页面刷新时的格式,但MacOSX上的情况并非如此。

    所使用的设置 G 格式字符串是 Full 格式在 System preferences -> Language & Text -> Times 而不是 Long 按我预期的格式。

    一旦设置被修改,你必须注销并重新登录才能看到更改。

    在这种方法上,msdn文档应该更清晰一些。

    谢谢你的指点,乔恩!

    我现在唯一的问题是,我为用户设置了当前的区域性(这样用户就可以选择自己的语言),不幸的是,如果用户的语言与系统中的语言不相同,那么会覆盖用户的格式设置。 至少现在我知道该怎么跟用户说了。