如何创建 LocalDateTime 实例?

问题描述 投票:0回答:1

如果我只有年月日,如何初始化 LocalDateTime 实例?

如果我必须包含时间,我会将其设置为 00:00:00。

java variables localdate localtime
1个回答
4
投票

优雅的方式经过

LocalDate

    LocalDateTime dateTime = LocalDate.of(2020, Month.JANUARY, 18).atStartOfDay();
    System.out.println(dateTime);

此片段的输出是:

2020-01-18T00:00

如果月份是数字,例如 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 的偏移量。现在我们不留任何误解的余地。

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