使用Java7,我们可以在
Calendar currentCal = Calendar.getInstance();
currentCal.set(Calendar.DAY_OF_YEAR, 1);
currentCal.set(Calendar.MONTH, 0);
currentCal.set(Calendar.DAY_OF_MONTH, 1);
currentCal.set(Calendar.HOUR_OF_DAY, 0);
currentCal.set(Calendar.MINUTE, 0);
currentCal.set(Calendar.SECOND, 0);
currentCal.set(Calendar.MILLISECOND, 0);
//currentCal.getTime();
如何在Java8新的日期/时间api中获得这样的一年的第一天?
2条答案
按热度按时间7ivaypg91#
我刚才运行的输出:
2021-01-01
这个
Year
类在旧的日期时间api中没有相应的表示形式,但对于像这样的情况非常方便。正如你可能已经知道的,一个
LocalDate
是一个没有时间的日期。既然你要求开学第一天,我就认为这门课适合你。在旧的课堂上,我们不得不决定一天中的时间。对于java.time,我们不是。如果您确实需要一天中的某个时间,您可能会希望转换为ZonedDateTime
(OffsetDateTime
,Instant
及LocalDateTime
其他选项取决于您的具体要求)。你需要选择一个时区,因为新年并不是在所有时区都同时发生。在极端情况下,如果你使用了不正确的时区,你的结果将是一整年的假期。我假设jvm的默认时区是正常的。使用时区id可能更安全,例如
ZoneId.of("Asia/Ho_Chi_Minh")
.dfddblmv2#
我想从以下几个方面入手
LocalDateTime
然后是当年,然后是第一个月的第一天。喜欢