【问题标题】:Missing Microsoft time zones缺少 Microsoft 时区
【发布时间】:2018-04-01 16:18:32
【问题描述】:

我正在考虑使用 Microsoft time zones(通过利用 C# 中的 System.TimeZoneInfo 类)将存储的 UTC 日期转换为本地时区日期,反之亦然。

但是,我注意到这不是一个完整的列表。例如,它目前只为格陵兰岛定义了一个时区 (Greenland Standard Time (GMT-03:00) Greenland),其中 wikipediatimeanddate 都显示有 2 个主要时区在使用(东部和西部)以及 2 个较少使用的时区。

是否有缺少时区的完整列表?

【问题讨论】:

  • Windows 时区处理实际上相当糟糕。如果它不适合你,你可以试试nodatime.org

标签: c# .net timezone


【解决方案1】:

Windows 时区 ID 和 IANA 时区 ID 之间的转换数据可通过 CLDR 获得。

查看数据(以及raw IANA data in Github),看起来有问题的 IANA 时区是:

  • “America/Godthab”(西格陵兰)
  • “美国/斯科尔斯比松”(东格陵兰)

那些对应的 Windows 时区 ID 为:

  • “格陵兰标准时间”(西格陵兰)
  • “亚速尔标准时间”(嗯,不是真正的东格陵兰 - 继续阅读)

显然亚速尔群岛和东格陵兰岛相距很远 - 但事实证明它们遵循相同的时区规则,这可能是微软将它们归为一个时区的原因。

基本上,如果您想在东格陵兰找到“America/Scoresbysund”的时间,那么“亚速尔标准时间”是您最接近的选择。

【讨论】:

  • CLDR 映射(第 34 版)位于common/supplemental/windowsZones 下,供那些浏览 zip 文件的人使用!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-17
  • 1970-01-01
  • 2015-07-10
  • 2021-07-04
  • 2016-06-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多