【问题标题】:Why do I get a time one hour later using Atlantic Standard Time for St. Martin?为什么我会在一小时后使用圣马丁的大西洋标准时间获得时间?
【发布时间】:2014-07-23 21:23:03
【问题描述】:

好的 - 所以现在对我来说是东部时间下午 5:16。圣马丁也是下午 5 点 16 分。圣马丁位于“大西洋标准时间”区。

当我将此值用作时区时,我得到了下午 6:16。我正在使用下面链接的列表 - 任何想法为什么这不起作用?

http://msdn.microsoft.com/en-us/library/ms912391(v=winembedded.11).aspx

【问题讨论】:

  • 不确定这是否是您遇到的问题,但我们目前处于夏令时。
  • 你是如何使用它的?请发布您的代码。
  • 不错的地方。有没有人真正关心过时钟是一小时?与加拿大等 AST 的其他地方不同,他们不使用夏令时。 DST 遵守和过渡是当地的政治决定。如果市长不喜欢它,那么它就不会发生。只有本地机器或付费网络服务知道这一点。

标签: c# .net timezone cultureinfo


【解决方案1】:

北美东部时区的大多数(但不是全部)地点都采用夏令时。例如,纽约、迈阿密或华盛顿特区。在这些位置,标准偏移量是 UTC-5,在冬季使用,而日光偏移量是 UTC-4,在夏令时使用的夏季月份使用时间有效。

圣马丁位于大西洋时区,不使用夏令时。它始终遵循大西洋标准时间,它使用 UTC-4 的偏移量。 Reference Here.

请注意,大西洋时区的其他一些位置,例如百慕大和新斯科舍省,确实使用夏令时,并且在夏令时设置时会有 UTC-3 的偏移量有效。

另外,由于您说您使用的是带有TimeZoneInfo 类的Windows 时区,您应该知道时区的ID 为"Atlantic Standard Time",显示名称为"(UTC-04:00) Atlantic Time (Canada)"确实 使用夏令时。

对于 Saint Martin,您应该改用 "SA Western Standard Time",它的显示名称为 "(UTC-04:00) Georgetown, La Paz, Manaus, San Juan",并且固定为 UTC-4。这是圣马丁马里戈特 (America/Marigot) 的正确映射,如 the Unicode CLDR Windows time zone mappings 中所述。

【讨论】:

    【解决方案2】:

    您说得对,它是 (GMT-04:00) 大西洋时间(加拿大),但您必须禁用或启用夏令时。这就是您获得不同价值的原因。

    【讨论】:

      猜你喜欢
      • 2016-07-06
      • 1970-01-01
      • 2014-07-04
      • 2015-01-22
      • 1970-01-01
      • 2013-12-21
      • 1970-01-01
      • 2021-06-28
      • 1970-01-01
      相关资源
      最近更新 更多