0

この「2012-07-01T06:00 +02:00」のような文字列を入力として取得します。それはCETにあります。しかし、この文字列は「2012-07-01T06:00 +01:00」である必要があります。

元のソースを変更することはできません。

今、私はシステムが期待する「2012-07-01T06:00 +01:00」としてその日付を取得したいと考えています。

Joda ライブラリを使用しています。DateTimeZone をドイツとして指定している日付を読みました。

この日付で、Europe/London を DateTimeZone として指定すると、日付は「2012-07-01T05:00 +01:00」になります (これは私のシステムでは予期された値ではありません。時間の変化を参照してください)。

文字列操作を使わずに行う方法はありますか?

4

1 に答える 1

1

したがって、入力が破損しています。入力を解析する唯一の方法は、文字列操作関数を使用して入力を修正し、指定された時間オフセットで日付パーサーを使用することです。

文字列に+01:00オフセットの時間が含まれていることがわかっている場合は、を使用して文字列からオフセットを削除し、入力のオフセットを完全に無視しsubstring()て明示的に指定したDateTimeFormatを使用する必要があります。withZone(DateTimeZone.forOffsetHours(1))

ただし、問題が入力文字列にあることを100%確信している場合に限ります。

于 2012-06-12T13:10:30.367 に答える