![]() |
1
6
因此,我建议您改用现代Java日期和时间API(我有意逐字使用您的格式模式字符串):
此代码引发
现在代码打印出来了
要转换为毫秒,我们仍然缺少一条关键信息:时间戳应该在什么时区进行解释?我认为两个明显的猜测是UTC和您的本地时区(我不知道)。尝试UTC:
这会产生
如果您希望使用JVM时区设置,请使用
|
![]() |
2
2
documentation of
无论如何
有了这个,结果
若要执行相反的操作(从毫秒值创建日期),必须创建一个
Java新日期/时间API
旧阶级(
Java 8 ,考虑使用 new java.time API .这更容易, less bugged and less error-prone than the old APIs 如果您正在使用 Java<=7. ThreeTen Backport ,是Java 8新的日期/时间类的一个很好的后台端口。对于 ThreeTenABP (更多关于如何使用它的信息 here ).
下面的代码适用于这两种情况。
作为输入
IANA timezones names
(始终采用格式
您也可以使用
相反,您可以获取毫秒值来创建一个瞬间,将其转换为时区并将其传递给格式化程序:
|
![]() |
3
1
第一个建议是转向Java8Java。时间API,而不是学习破碎的java。API日期
在您的情况下,您可以:
请注意,只要你更多地使用api,你就会找到更多的方法来实现同样的事情,最后你就会停止调用 toEpochMilli |
![]() |
4
1
|
![]() |
5
1
你可以试试
|
![]() |
6
1
如果你有
这里的关键点是,为了获得自新纪元以来的毫秒数,您不需要
|
![]() |
Bernhard Gratzl · 合并具有不同时间戳的表? 6 月前 |
|
Delopera · Pandas:包含X行的最短间隔 11 月前 |
|
F.I. · JS时间戳错误-时区设置[已关闭] 1 年前 |