gpt4 book ai didi

java - Java 中使用哪个类来保存时间和日期

转载 作者:行者123 更新时间:2023-12-01 17:55:34 25 4
gpt4 key购买 nike

我正在构建一个简单的管理器应用程序,并尝试选择一个类来将我的日期和时间保存在对象中。我应该使用哪些类?我在 Date 中看到了很多方法类已弃用。也许Calendar然后?推荐一些东西。谢谢。

最佳答案

这取决于您想要什么样的日期/时间。

  • System.currentTimeMillis() - 这将为您提供一个简单的数值,以 UNIX 纪元之后的毫秒数表示为 long
  • 如果您想要年月日格式,您可以使用以下之一:

    new Date() - 这将为您提供一个使用当前日期/时间初始化的 Date 对象。这已被弃用,因为 API 方法大多存在缺陷。

    new org.joda.time.DateTime() - 这将为您提供一个 joda-time 对象使用当前日期/时间初始化。 Joda-time 包含一个很棒的 AP​​I,可以执行任何涉及时间点和持续时间计算的操作。然而,对于 Java 8,情况不再如此

    Calendar.getInstance() - 这为您提供了一个使用默认区域设置和时区、使用当前日期/时间初始化的 Calendar 对象。

  • 如果您只需要一种简单的方法来输出 YYYY.MM.DD-HH.MM.SS 格式的时间戳(这是一种非常常见的情况),那么请使用此方法:

    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
  • 即时 - 如果您想要进行任何业务逻辑和数据存储/交换工作,则最佳实践应该在 UTC 中完成。要获取当前时刻(以纳秒为单位),请使用 Instant 类:

    Instant instant = Instant.now();

您还可以将该 Instant 调整到其他时区。应用 ZoneId 对象来获取 ZonedDateTime。

ZoneId zid = ZoneId.of("Europe/Paris"); //create zone id
ZonedDateTime zdt = instant.atZone(zid); //pass zone id get the adjusted zoned date time.
  • LocalDate - 此类表示不含日期时间和时区的纯日期值。

    ZoneId zid = ZoneId.of("Europe/Paris");
    LocalDate today = LocalDate.now(zid); //Always pass in a time zone

关于java - Java 中使用哪个类来保存时间和日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45199303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com