/ / XMLから解析されたISO8601の日付には異なるタイムゾーンがあります-xml、date、datetime、iso8601

XMLから解析されたISO8601の日付には、異なる時間帯(xml、date、datetime、iso8601)があります。

私は2つの日付を含むXMLセグメントを持っていますフォーマット2016-03-22および2016-03-29。これらはXMLからStringオブジェクトに解析され、ISO8601準拠の日付オブジェクトに変換されます。このプロセス中、2016-03-22は2016年3月22日00:00:00 GMT 2016と解釈され、2番目の日付は2016年3月29日00:00:00 BSTと解釈されます。1つはGMT TZであることがわかります。およびBSTタイムゾーンのもう一方。これは、それらの日付間の日数を計算すると、予想よりも少ない日になることを意味します。時計は今年3月30日に進みますが、これに近い日付の範囲で発生するため、相関があるかどうかはわかりません3月30日を含みます。今年もle年であり、関係する日付に関係があるかどうかはわかりません。

なぜこれが起こるのか、考えたことはありますか?

おかげで、 ゲル

回答:

回答№1は0

参考までに、ほとんどの(すべてではないにしても)ヨーロッパ諸国は、3月27日(日)に夏時間に変更します。これは、「2016-03-29」の解析時に得られるBST(ブリティッシュサマータイム)タイムゾーンについても説明しています。

ただし、元々タイムゾーン情報が含まれていない入力データに基づいて期間または期間の計算を実行する場合、このような結果を期待する必要があります。

Javaを使用している場合は、Java 8で導入された優れたjava.time APIを使用することをお勧めします。Java8がオプションでない場合は、Joda TimeまたはそのC#(.NET)の対応物であるNoda Timeを探してください。