2017-01-03 11 views
-2

私はハワイのタイムゾーンに基づいて時間を計算しています。現在の日付が2017-01-01T10:52:07.656-10:00(1月1日)のテストシナリオがあります。 .minusDays(1)を使用して前の日付を取得しようとすると、2016-12-31T12:52:07.656-08:00(12月31日)の日付が取得されます。ジョーダ時間を使用して前日計算

フォーマットをしようとしている前日の日付です。MM/DD/YYYYです。私は12/366/2016代わりの2016年12月31日

として出力を得る私のコード:

DateTime dt4 = new DateTime("2017-01-01T10:52:07.656-10:00"); 
    System.out.println("Given Date:"+ dt4); 
    DateTimeFormatter fmt = DateTimeFormat.forPattern("MM/DD/YYYY"); 
    System.out.println("Given Date After Date format: "+fmt.print(dt4)); 

    DateTime previousDay = dt4.minusDays(1); 
    System.out.println("Previous Day: "+ previousDay); 
    System.out.println("Previous Date After Date format: "+fmt.print(previousDay)); 

O/P:

指定された日付:2017-01-01T12: 52:07.656-08:00
与えられた日付の後の日付の形式:01/01/2017
前日:2016-12-31T12:52:07.656-08:00
前の日付後の日付の形式:12/366/2016

+0

おそらく 'DD'ではなく' dd'または 'd'が必要です –

答えて

2

チェックthis

あなたは3616を取得します.2016年には366日があり、最後のものを選択したためです。 首都Dは1年の日数です。あなたが望むと思うものは、月の小文字です。

スクロールすると、いくつかの例が表示されます。

関連する問題