Java有天真的时间戳吗?

时间:2018-05-29 14:09:09

标签: java java-8 timezone timestamp

正如我们在previous question中发现的那样,java中的长时间戳意味着Unix时间戳:

long ts = 1362156863140L

但Java中存在天真的时间戳吗?或者认为构造函数中的长时间戳不知道时区的类?

2 个答案:

答案 0 :(得分:4)

您正在使用的术语很有趣。大多数定义的“时间戳”是一个唯一的时间点,因此必须与UTC相关 - 要么完全基于UTC,要么具有与UTC的固定偏移量。因此,“天真的时间戳”有点矛盾。

但是,确实有一个表示没有时区的日期和时间,即LocalDateTime。它是使用Java 8作为JSR-310引入的java.time API的一部分。

您可以使用LocalDateTime.ofEpochSecond从数字时间戳创建一个。如果您的时间戳是基于毫秒的,那么您可以进行一些除法和模运算将其拆分为单独的秒和纳秒参数。您还需要传递UTC偏移量,因此它知道您希望如何解释传入值。

答案 1 :(得分:0)

从1.8开始,Java有一个Date / Time API,你可能需要所有原生日期和时间函数。

请查看以下网址以获取介绍和许多示例: http://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html