繁体   English   中英

如何在 Java 中创建 LocalDateTime 变量?

[英]how do I create a LocalDateTime variable in java?

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

优雅的方式通过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 个,您最好使用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 的偏移量。 现在我们没有留下任何误解的余地。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM