【问题标题】:Convert GMT Diff to .Net timezone?将 GMT Diff 转换为 .Net 时区?
【发布时间】:2011-02-07 22:04:29
【问题描述】:

我的数据库有每个国家/地区的 GMT 差异,例如 GMT+02:00GMT-04:00 使用 C# .net 是否有一种简单的方法可以将其转换为实际的 .Net 时区?

例如“东部标准时间”或“东澳大利亚标准时间”

谢谢

【问题讨论】:

    标签: c# .net timezone


    【解决方案1】:

    您可以找到 一个 时区,只是不太可能是您想要的那个。 UTC 偏移量不明确。 GMT+02:00 是偏移量

    • 约旦标准时间
    • GTB 标准时间
    • 中东标准时间
    • 埃及标准时间
    • 叙利亚标准时间
    • 南非标准时间
    • FLE 标准时间
    • 以色列标准时间
    • E.欧洲标准时间

    你有什么特别喜欢的吗?你会用这样的表达式得到它们:

        public static TimeZoneInfo[] GetTimeZones(TimeSpan offset) {
            return TimeZoneInfo.GetSystemTimeZones().Where(z => z.BaseUtcOffset == offset).ToArray();
        }
    

    我不得不查看其中的一些。 FLE = 芬兰、立陶宛、爱沙尼亚。 GTB 更强硬,我猜是希腊、土耳其、保加利亚。

    【讨论】:

    • 我想知道单个偏移量的不同命名时区的最大数量是多少.....
    • 在夏令时时不要忘记 GMT+2 时区。
    • @David,它是 UTC+02:00 和 9。值得注意的奇怪球是尼泊尔,UTC+05:45,UTC+11:00 没有人居住和汤加,UTC+13:00忽略日期线。
    • 我指的是像中欧时间这样的时区,在冬天是 UTC+1,但在夏天变成中欧夏令时间,UTC+2。所以 UTC+2 可以参考的总时区列表不仅仅是 9 个。
    • @David,另一个,夏令时是一个政治决定,不受时区的影响。传统上在美国的印第安纳州和亚利桑那州等州,因为它们处于边缘,而美洲印第安部落则制定了自己的规则。强大的想法,人们确实可以调用自己的规则。当火车不停在您的城镇时,永远不会有问题。
    【解决方案2】:

    这是不可能的,因为不同的时区可以共享与 GMT(或更正确的 UTC)的相同偏移量。

    【讨论】:

      【解决方案3】:

      如果您预计其中包含“东部标准时间”,则需要更多信息,而不仅仅是与 GMT 的偏移量。例如,GMT-5 是东部标准时间、中部夏令时间、东部标准时间(印第安纳州)以及各种南美时区,包括夏令时和不夏令时,并且与美国的 DST 时间表不同。

      【讨论】:

        【解决方案4】:

        如果您只接受与该 GMT 偏移量匹配的第一个可用时区,那应该很容易。

        这不是我的想法,但是......

        TimeZoneInfo getTimeZone(string gmtstring)
        {
          foreach(TimeZoneInfo ti in TimeZoneInfo.GetSystemTimeZones())
          {
            TimeSpan tsp = ti.BaseUtcOffset;
            if(tsp.ToString((tsp.TotalMinutes < 0 ? "-" : "+")+"hh:mm") == gmtstring.Substring(3))
              return ti;
          }
          return null;
        }
        

        否则时区和 GMT 偏移量之间没有直接关系(正如其他人所说,同一 GMT 偏移量上有许多时区)

        PS:gmtstring 应该是“GMT(+|-)HH:SS”格式

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-08-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-02-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多