Java:如何在给定时区的月末找到时间戳

时间:2017-11-04 12:11:51

标签: java jodatime

我需要在给定时间戳的某个时区找到月末的时间戳。

以下代码以UTC

返回月份时间戳的开头
DateTime allInOneLine = new DateTime( DateTimeZone.forID( "Europe/Paris" ) ).plusMonths( 1 ).dayOfMonth().withMinimumValue().withTimeAtStartOfDay();

返回:

2017-12-01T00:00:00.000Z

有关如何获取给定时区的结束月份时间戳的任何建议

1 个答案:

答案 0 :(得分:1)

以下是一个很好的起点。我已经通过了UTC,这可以在任何时区都是通用的

import java.time.LocalTime;
import java.time.ZonedDateTime;
import java.time.temporal.TemporalAdjusters;
import static java.time.ZoneOffset.UTC;

public class TruncateToMonth {
    public static void main(String[] args) {
        ZonedDateTime now = ZonedDateTime.now(UTC);
        ZonedDateTime truncatedToMonth = now.with(TemporalAdjusters.lastDayOfMonth()).with(LocalTime.MAX);
        System.out.println(truncatedToMonth);
        System.out.println(truncatedToMonth.toInstant().getEpochSecond());
    }
}