|
|
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
如果你有
这里的关键点是,为了获得自新纪元以来的毫秒数,您不需要
|
|
|
SScast · awk日志文件中的日期到历元,并打印其他列 10 年前 |
|
|
user470760 · 日期类转换时间戳错误 10 年前 |
|
|
user4358169 · 大纪元时间转换上的年份错误 11 年前 |