java - Java有幼稚的时间戳吗?
问题描述
正如我们在前面的问题中发现的,java 中的长时间戳意味着 Unix 时间戳:
long ts = 1362156863140L
但是Java中是否有幼稚的时间戳?或者认为构造函数中的长时间戳不知道时区的类?
解决方案
您使用的术语很有趣。根据大多数定义,“时间戳”是唯一的时间点,因此必须与 UTC 相关——要么完全基于 UTC,要么与 UTC 有固定的偏移量。因此,“朴素时间戳”有点矛盾。
但是,确实有一个类表示没有时区的日期和时间,即LocalDateTime
. 它是java.time
作为 JSR-310 与 Java 8 一起引入的 API 的一部分。
您可以使用LocalDateTime.ofEpochSecond
从数字时间戳创建一个。如果您的时间戳是基于毫秒的,那么您可以进行一些除法和模运算以将其拆分为单独的秒和纳秒参数。您还需要将 UTC 偏移量传递给它,因此它知道您希望如何解释传入的值。
推荐阅读
- reactjs - React 中的引用 - React.createRef() - 模块构建失败:SyntaxError: Unexpected token
- c# - 立即窗口在命名空间中找不到类
- ios - 不能使用 String 类型的索引为 NSDictionary 类型的值下标。从 Swift 2.3 -> 3.2 转换时
- html - 根据我的第 3 段,我该如何将图像设置在左中?
- java - 循环消息/任务队列现有解决方案
- php - 在徽标旁边添加另一张图片 - Wordpress
- node.js - 为 Let's encrypt 设置 certbot 时选择哪个软件和系统?
- c# - GridView - 选择第一行不起作用
- javascript - GraphQLError:语法错误:无法解析意外字符“;”
- json.net - Json.NET - 根据值改变架构/合同的正确方法?