当前位置: 首页 > 面试题库 >

Java 8的新Java日期时间API是否可以处理DST?

严朝明
2023-03-14
问题内容

我正在考虑使用新的 Java 8 Date Time API
。我在Google上搜索了一下,发现jodaTime是Java的不错选择,但仍然对查看此新API的工作方式感兴趣。

我将所有时间存储在数据存储区中的UTC值中,并将根据用户的时区将其转换为本地时区特定的值。我可以找到许多文章,展示了如何使用新的Java Date Time
API。但是我不确定API是否会处理DST更改?还是我们有更好的日期处理方式?

我只是在学习新的Date API,因此想听听您对处理DateTime的想法并在Users TimeZone的基础上进行显示。


问题答案:

这取决于您使用的类:

  • Instant 是全局时间线(UTC)上的瞬时点,与时区无关。
  • LocalDate并且LocalDateTime没有时区的概念,但是致电now()当然会给您正确的时间。
  • OffsetDateTime 有时区,但不支持夏令时。
  • ZonedDateTime 有完整的时区支持。

它们之间的转换通常需要一个时区,因此请回答您的问题:

是的, 如果 使用得当,Java 8 Date / Time 可以 处理DST 。 __



 类似资料:
  • 也许有人能给我举个例子?我在问自己,新的日期和时间API的改进来自哪里。

  • 主要内容:Date 类,Calendar 类在 Java 中获取当前时间,可以使用 java.util.Date 类和 java.util.Calendar 类完成。其中, Date 类主要封装了系统的日期和时间的信息,Calendar 类则会根据系统的日历来解释 Date 对象。下面详细介绍这两个类的具体使用。 Date 类 Date 类表示系统特定的时间戳,可以精确到毫秒。Date 对象表示时间的默认顺序是星期、月、日、小时、分、秒、年

  • 我需要一些解释为什么这个代码不编译: 错误: 类型Duration中的(TemporalAmount)方法不适用于参数(ChronoUnit) 正如本文所述: public static Duration from(TemporalAmount amount)从时间量中获取持续时间的实例。这将根据指定的金额获得持续时间。TemporalAmount表示一个时间量,可以是基于日期的,也可以是基于时间

  • 我们的客户以文本文件的形式向我们发送以下格式的字符串形式的开始和结束日期时间 2019-10-07 11:07上午 所有日期时间都在一个时区内。我们计算开始日期和结束日期时间之间的差异来计算工作时间。当夏令时转换发生时,工时计算出错。他们没有提供足够的信息让我们正确计算。 我将建议他们向我们发送更多信息,以便我们能够解决这个问题。什么是好的解决方案?我们应该向他们推荐什么样的日期-时间格式,以帮助

  • 我有下一个代码: 但当我运行它时,它会出错: TypeError:不支持的类型“ 我尝试了很多方法,但似乎不可能将日期时间保存到DynamoDB。顺便说一句,它在MongoDB中运行良好。 有什么解决办法吗?

  • 主要内容:日期,时间,日期格式化:年-月-日DOS脚本中的日期和时间具有以下两个用于检索系统日期和时间的基本命令。 日期 该命令获取系统日期。 语法 示例 当前日期将显示在命令提示符下。 例如, 时间 该命令设置或显示时间。 语法 示例 当前时间将显示在命令提示符下。 例如, 以下是一些可用于以不同格式获取日期和时间的实现。 日期格式化:年-月-日 示例 以上命令产生以下输出 -