栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JSR 310 :: System.currentTimeMillis()与Instant.toEpochMilli():: TimeZone

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JSR 310 :: System.currentTimeMillis()与Instant.toEpochMilli():: TimeZone

双方

System.currentTimeMillis()
Instant.toEpochMilli()
自Unix纪元返回的毫秒数。尽管Unix时期通常表示为“
UTC 1970年1月1日午夜”,但这并不是“在任何特定时区中”。但是瞬间只是时间的瞬间,无论您处于哪个时区都是相同的-但它将反映不同的本地时间。

的输出

LocalDateTime.atZone(UTC)
有所不同,因为您说的是“获取本地日期和时间,并将其转换 为与UTC时区相同的时刻
”-即使您创建时是
LocalDateTime
在UTC + 3时间中隐式执行的区域…这就是为什么它是“错误的”。

LocalDateTime.now()
采用 系统默认时区中 的本地日期和时间。因此,如果您的时区为UTC +
3,则当前时间为2015-10-06T16:57:00Z,
LocalDateTime.now()
则将返回
.2015-10-06T19:57:00
。让我们称之为
localNow

因此,

localNow.atZone(ZoneOffset.of("+3"))
将返回
ZonedDateTime
代表2015-10-06T19:57:00
+ 03-换句话说,相同的本地日期/时间,但“知道”它比UTC早3小时…因此
toInstant()
将返回
Instant
代表2015-10
-06T16:57:00Z。很好-我们仍然有当前日期/时间。

但是

localNow.atZone(ZoneOffset.UTC)
将返回
ZonedDateTime
代表2015-10-06T19:57:00Z-换句话说,相同的本地日期/时间,但“认为”它已经存在于UTC中,因此
toInstant()
将返回
Instant
代表2015-10-06T19:57
:00Z ..根本不是当前时间(三个小时之内)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/515172.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号