正如我们在previous question中发现的那样,java中的长时间戳意味着Unix时间戳:
long ts = 1362156863140L
但Java中存在天真的时间戳吗?或者认为构造函数中的长时间戳不知道时区的类?
答案 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