何时何地哪个更可取?
我不知道他们之间到底有什么区别。
来自LocalDateTime的文档
...时间表示为纳秒精度。例如,值“2007 年 10 月 2 日 13:45.30.123456789”可以存储在 LocalDateTime 中。
我假设LocalDateTime也可以接受纳秒。所以我想,我可以用LocalDateTime替换我的代码,它们被声明为TimeStamp。如果我错了,请纠正我。
场景:我们计划用Java-8升级我们的项目。用JAVA-8的新功能修改了旧的代码样式(例如:Lambda、Streams等)。但是我们在决定日期和时间时遇到了麻烦。大多数带有java.util.Date
的代码被更改为java.time.LocalDate
或java.time.LocalDateTime
。对于TimeStamp的情况,我不知道这个问题
我们应该用LocalDateTime替换它们吗?
和java.util。日期
和java.sql。时间戳
实际上等同于java.time。Instant
,而不是<code>LocalDateTime,日期时间戳和Instant是Unix时间的实例,而LocalDate时间是当前时区中的日期时间。
您可以清楚地看到,因为两个类都有这个好方法(继承自< code>java.util.Date):
java.util.Date::toInstant
我假设你用LocalDate
替换Date
的意思是你实际上是在替换java.sql.Date
,而不是java.util.Date
。现在,sql.Date 是 LocalDate 的等效项,并不等同于 Instant,因为 sql.日期缺少时间组件(尽管有 sql.日期是 util 的子类。Date,在其上调用 getSeconds()
将导致异常)。
在当前的开发中,您应该更喜欢< code>LocalDateTime和其他Java8时间类。
> < li>
它们的优势在于时间点定义(< code>Instant)和持续时间(< code>Duration)或基于片段的定义(< code>LocalDate,< code>LocalTime)之间的区分更加清晰。
它们允许一组非常好的操作/计算逻辑方法(与java.util.Date
不同)。
此外,还涵盖了单位转换(Duration.toDays()
)。
最后但并非最不重要的是时区地狱被覆盖(ZonedDateTime
)。
一个小缺点是缺乏很多第三方API的支持,您可能想利用这一点。但是这应该只是时间问题,从Java8 time API到Calendar/Date的转换并不困难。
如果您有一个成熟的软件,那么用基于Java8的接口替换旧的基于日期/日历的接口只是一个风险,直到您利用上面提到的一些优势。
如果要将旧的 TimeStamp
参数替换为 Java8 时间工具箱中的内容,则可以使用 Instant
、LocalDateTime
或 ZonedDateTime
。不同之处在于,在计算方面,即时
值作为基于ZoneOffset.UTC
的处理,而LocalDateTime
根据定义没有任何时区关系。
提示:如果在<code>2018-01-02 10:24:12Instant或ZonedDateTime
,显式定义时区。
问题内容: 我正在尝试将一个实例转换为一个实例。 我没有得到编译器错误,但是实例值是错误的。 我认为这不起作用,因为它存储时间而不是。 我正在使用JDK 1.8版。 问题答案: 您的输入实际上是一个。简单地将其解析为a 然后从中获取会更简单。无需担心时区,无需保留某些传统课程(避免并在可能的情况下…)
我有一个简单的JavaLocalDateTime如下: 它的结果是: 我希望是2021年3月23日下午1点17分 我在这里错过了什么?
问题内容: 从服务器上,我得到了这种格式的datetime变量:它是UTC时间。我想使用JavaScript将其转换为当前用户的浏览器时间。 如何使用JavaScript或jQuery完成此操作? 问题答案: 在将字符串转换为javascript中的日期之前,将’UTC’附加到字符串中:
目前我有一张包含以下条目的地图, 如何确定当前LocalDateTime是否介于两个时间之间?例如,如果当前时间为,则需要获取值。
我需要一些解释为什么这个代码不编译: 错误: 类型Duration中的(TemporalAmount)方法不适用于参数(ChronoUnit) 正如本文所述: public static Duration from(TemporalAmount amount)从时间量中获取持续时间的实例。这将根据指定的金额获得持续时间。TemporalAmount表示一个时间量,可以是基于日期的,也可以是基于时间
我想做一个考勤应用程序,我真的很困惑iOS和Firebase中的日期和时间。