如果只有年,月和日,那么如何初始化LocalDateTime变量?同样如果我需要包括时间,我将其设置为00:00:00非常感谢!
[优雅的方式通过LocalDate
:
LocalDateTime dateTime = LocalDate.of(2020, Month.JANUARY, 18).atStartOfDay();
System.out.println(dateTime);
此代码段的输出是:
2020-01-18T00:00
如果您将月份作为数字,例如1月为1,请改用LocalDate.of(2020, 1, 18)
。其余的都一样。
使用LocalDateTime
之前请三思。我们通常将日期和时间一起用于建立时间点。 LocalDateTime
不适合这样做(有人会说不适合)。为什么以及如何?它不知道任何时区或UTC的偏移量。因此,任何人和阅读LocalDateTime
的任何软件都可以将其解释为他们碰巧想到的任何时区,而不是预期的时区。对于20个目的中的至少19个,最好使用ZonedDateTime
或OffsetDateTime
。例如:
ZoneId zone = ZoneId.of("America/Recife"); ZonedDateTime dateTime = LocalDate.of(2020, Month.JANUARY, 18).atStartOfDay(zone);
2020-01-18T00:00-03:00 [美国/累西腓]
分钟和区域ID之间的-03:00
是UTC的偏移量。现在,我们不会留下任何误解的空间。
下面给出一个例子: