我如何在Java中创建LocalDateTime变量?

问题描述 投票:-5回答:2

如果只有年,月和日,那么如何初始化LocalDateTime变量?同样如果我需要包括时间,我将其设置为00:00:00非常感谢!

java variables localdate localtime
2个回答
1
投票

[优雅的方式通过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个,最好使用ZonedDateTimeOffsetDateTime。例如:

    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的偏移量。现在,我们不会留下任何误解的空间。


0
投票

下面给出一个例子:

© www.soinside.com 2019 - 2024. All rights reserved.