1

次のような文字列が"2007-03-12T04:27:00.000+01:00"あり、それを日時オブジェクトに変換して計算を行いたいと考えています。現在私は使用してjoda.timeいます。これを joda DateTime オブジェクトに変換して印刷しようとすると、 として表示され"2007-03-12T08:57:00.000+05:30"ます。同じタイムゾーンで値を印刷するにはどうすればよいですか。

4

2 に答える 2

0

必要なタイム ゾーンを指定しない限り、DateTime は既定でマシンのローカル タイム ゾーンになります。DateTime ( Object)コンストラクターは、オフセットを使用して意味する瞬間を把握しますが、オフセットを使用してタイム ゾーンを設定することはありません。したがって、代わりに:

    DateTime localDateTime = new DateTime("2007-03-12T04:27:00.000+01:00");

オフセットを解析して適切な DateTimeZone を取得し、それを DateTime に渡します。

    DateTimeZone zone1 = DateTimeZone.forOffsetHoursMinutes(01, 00);
    DateTime localDateTime = new DateTime("2007-03-12T04:27:00.000", zone1);
于 2012-10-19T18:25:08.697 に答える