Joda-Time
Joda -Timeライブラリは、LocalDate
時刻やタイム ゾーンのない日付のみの値を表すクラスを提供します。
タイムゾーン
日付の決定にはタイムゾーンが必要です。パリの真夜中の直後の瞬間は、モントリオールの同じ同時の瞬間よりも 1 日前の日付を意味します。タイム ゾーンの指定を怠ると、JVM の現在のデフォルト タイム ゾーンが適用されます。結果が異なる可能性があるため、おそらく希望どおりにはなりません。
サンプルコード
long millisecondsSinceUnixEpoch = ( yourNumberOfSecondsSinceUnixEpoch * 1000 ); // Convert seconds to milliseconds.
DateTimeZone timeZone = DateTimeZone.forID( "America/Montreal" );
LocalDate localDate = new LocalDate( millisecondsSinceUnixEpoch, timeZone );
String output = localDate.toString(); // Defaults to ISO 8601 standard format, YYYY-MM-DD.
前日
コメントで要求されたように、前日に取得します。
LocalDate dayBefore = localDate.minusDays( 1 );
juDate に変換
java.util.Date および .Calendar クラスは、厄介なことで知られているため、避ける必要があります。ただし、必要に応じて改宗することもできます。
java.util.Date date = localDate.toDate(); // Time-of-day set to earliest valid for that date.