2017-04-07 10 views
1

私はNodaTimeの使用を開始し、少し問題に気付きました。オーストラリア/メルボルンとオーストラリア/ビクトリアはどのようにNodaTimeで扱われますか?

wikiページに基づいてhttps://en.wikipedia.org/wiki/List_of_tz_database_time_zones

オーストラリア/メルボルンは、DSTタイムシフト11と非DSTのタイムシフト10を持っている必要があります。 NodaTimeでは、Austrralia/Melbourneが+ 10/+ 10のようです。ウィキオーストラリア/メルボルンオン

はオーストラリア/ヴィクトリア にでもNodaTimeオーストラリア/ビクトリア州の似ている+ 11/+真実のソースを探すために11

? wikiは古くなっていますか、NodaTime DBは同期していませんか?あるいは、他にも魅力的な問題が起こっているかもしれません。

+1

FYI - Nod Timeを使用してtzdbデータを取得するアプリを使用して、ウィキペディアのページを管理しています。 –

+0

素晴らしい情報@MattJohnsonそれは役に立ちました:) –

答えて

3

どこから真実を探しますか?

IANA time zone databaseは私が知っている最良の情報源であり、野田時代が使用しているものです。

時間の経過と共にどのような結果が得られたのかを確認したい場合は、tzvalidateページにIANAリリースごとに1つのファイルリストがあります。各ファイルには、1900年から2035年までの各タイムゾーンのすべての遷移が表示されます。

あなたの結果は表示されません。これはノーダタイムを正しく使用していないことを示しています。ここでは例です:

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 

あなたが見ることができるように、それは、標準時間と夏時間のための11のための +10です。

+0

ありがとう@jonSkeet問題ははるかに些細なことでした。私が入力として使用した日付は、オーストラリア/メルボルンのDSTでした。ここには何も見ないで移動:) –

関連する問題