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

Java: How to find timestamp at the end of the month for a given timezone

我需要从给定时间戳中找到给定时区的月末时间戳。

以下代码returns UTC 中月份开始的时间戳

DateTime allInOneLine = new DateTime( DateTimeZone.forID( "Europe/Paris" ) ).plusMonths( 1 ).dayOfMonth().withMinimumValue().withTimeAtStartOfDay();

returns:

2017-12-01T00:00:00.000Z

关于如何获取给定时区的月底时间戳的任何建议

以下是一个很好的起点。我已经通过了 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());
    }
}