【问题标题】:How is the Australia/Melbourne and Australia/Victoria treated in NodaTime?NodaTime如何处理澳大利亚/墨尔本和澳大利亚/维多利亚?
【发布时间】:2017-04-07 12:40:13
【问题描述】:

我已经开始使用 NodaTime 并注意到一个小问题。

基于维基页面https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

澳大利亚/墨尔本应该有 dst 时移 +11 和非 dst 时移 +10。 在 NodaTime 中,澳大利亚/墨尔本似乎是 +10/+10。

在wiki上澳大利亚/墨尔本类似于澳大利亚/维多利亚 但是在 NodaTime 澳大利亚/维多利亚是 +11/+11

在哪里寻找真相的来源? wiki 是否过时或 NodaTime DB 不同步?或者可能还有其他一些有趣的问题正在发生。

【问题讨论】:

  • 仅供参考 - 我使用我编写的应用程序维护该维基百科页面,该应用程序使用 Noda Time 获取 tzdb 数据。
  • 非常有用的@MattJohnson 信息 :)

标签: internationalization dst nodatime


【解决方案1】:

在哪里寻找真相的来源?

IANA time zone database 是我所知道的最好的来源,这也是 Noda Time 使用的来源。

如果您想了解一段时间以来的结果,tzvalidate 页面有一个文件列表,每个 IANA 版本都有一个。每个文件显示 1900 年到 2035 年之间每个时区的每个转换。

现在,我没有看到您的结果,这表明您没有正确使用 Noda Time。这是一个例子:

using NodaTime;
using System;

public class Program
{
    public static void Main(string[] args)
    {
        var zone = DateTimeZoneProviders.Tzdb["Australia/Melbourne"];

        var start = Instant.FromUtc(2015, 1, 1, 0, 0);
        var end = Instant.FromUtc(2020, 1, 1, 0, 0);
        foreach (var interval in zone.GetZoneIntervals(start, end))
        {
            Console.WriteLine($"{interval.Start} - {interval.End}: {interval.WallOffset} {interval.Name}");
        }
    }
}

输出:

2014-10-04T16:00:00Z - 2015-04-04T16:00:00Z: +11 AEDT
2015-04-04T16:00:00Z - 2015-10-03T16:00:00Z: +10 AEST
2015-10-03T16:00:00Z - 2016-04-02T16:00:00Z: +11 AEDT
2016-04-02T16:00:00Z - 2016-10-01T16:00:00Z: +10 AEST
2016-10-01T16:00:00Z - 2017-04-01T16:00:00Z: +11 AEDT
2017-04-01T16:00:00Z - 2017-09-30T16:00:00Z: +10 AEST
2017-09-30T16:00:00Z - 2018-03-31T16:00:00Z: +11 AEDT
2018-03-31T16:00:00Z - 2018-10-06T16:00:00Z: +10 AEST
2018-10-06T16:00:00Z - 2019-04-06T16:00:00Z: +11 AEDT
2019-04-06T16:00:00Z - 2019-10-05T16:00:00Z: +10 AEST
2019-10-05T16:00:00Z - 2020-04-04T16:00:00Z: +11 AEDT

如您所见,标准时间为 +10,白天时间为 +11。

【讨论】:

  • 谢谢@jonSkeet 问题要小得多,我用作输入的日期是澳大利亚/墨尔本的 DST,尽管它不是 DST。在这里什么都看不到:)
猜你喜欢
  • 1970-01-01
  • 2015-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-05
  • 2016-06-03
相关资源
最近更新 更多