我想知道是否有办法使用新的 LocalDate
, LocalTime
或 LocalDateTime
--- 或 —b9b6b08c9933470d8170c 类来获取当前毫秒数8.
已知的方法如下:
long currentMilliseconds = new Date().getTime();
或者
long currentMilliseconds = System.currentTimeMillis();
原文由 Georgios Syngouroglou 发布,翻译遵循 CC BY-SA 4.0 许可协议
我不完全确定你所说的“当前毫秒数”是什么意思,但我假设它是自“纪元”以来的毫秒数,即 1970 年 1 月 1 日午夜 UTC。
如果您想立即找到自纪元以来的毫秒数 , 请使用
System.currentTimeMillis()
正如 Anubian Noob 指出的那样。如果是这样,就没有理由使用任何新的 java.time API 来执行此操作。但是,也许您已经有一个
LocalDateTime
或来自某处的类似对象,并且您想将其转换为自纪元以来的毫秒数。不可能直接这样做,因为LocalDateTime
对象族不知道它们所在的时区。因此需要提供时区信息以找到相对于纪元的时间,这在UTC。假设你有一个
LocalDateTime
像这样:您需要应用时区信息,给出
ZonedDateTime
。我和洛杉矶在同一个时区,所以我会这样做:当然,这对时区进行了假设。并且可能会发生一些边缘情况,例如,如果本地时间恰好命名为夏令时(夏令时)过渡附近的时间。让我们把这些放在一边,但你应该知道这些情况是存在的。
无论如何,如果您可以获得有效的
ZonedDateTime
,您可以将其转换为自纪元以来的毫秒数,如下所示: