乔达时间
Joda-Time库提供了一个LocalDate
类来表示没有任何时间或时区的仅日期值。
时区
确定日期需要时区。巴黎午夜刚过的时刻意味着比蒙特利尔同一时刻早一天的日期。如果您忽略指定时区,则会应用 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.