首页 > 解决方案 > 获取一年中给定月份的第一天开始和最后一天结束的长值

问题描述

给定一个月(3 月 3 日、9 月 9 日等)和一年(2018 年等),我希望能够获得两个确切时间日期的纪元时间值:

  1. 给定月份第一天的午夜(一天的开始)
  2. 给定月份的最后一天 23:59:59(一天结束)

提前致谢

标签: javadatetime

解决方案


对于当月的最后一刻,您可以简单地从上个月开始的午夜减去一秒。这是一个 Java 8 选项:

LocalDate start = LocalDate.of(2018, 5, 1);
LocalDate end = LocalDate.of(2018, 6, 1);
ZoneId zoneId = ZoneId.systemDefault();
long e1 = start.atStartOfDay(zoneId).toEpochSecond();
long e2 = end.atStartOfDay(zoneId).toEpochSecond() - 1L;

演示


推荐阅读