我不完全确定你所说的“当前毫秒”是什么意思,但我假设这是自“纪元”以来的毫秒数,即1970年1月1日午夜UTC。
如果你想找到自纪元以来的毫秒数,那么请使用Anubian Noob所指出的那样。如果是这样,则没有理由使用任何新的java.time API来执行此操作。System.currentTimeMillis()
但是,也许您已经从某个地方获得了一个或类似的对象,并且您希望将其转换为自纪元以来的毫秒。这是不可能的,因为对象家族不知道它们所在的时区。因此,需要提供时区信息来查找相对于纪元的时间,该纪元以 UTC 为单位。LocalDateTime
LocalDateTime
假设你有一个这样的:LocalDateTime
LocalDateTime ldt = LocalDateTime.of(2014, 5, 29, 18, 41, 16);
您需要应用时区信息,给出 .我和洛杉矶在同一时区,所以我会做这样的事情:ZonedDateTime
ZonedDateTime zdt = ldt.atZone(ZoneId.of("America/Los_Angeles"));
当然,这是对时区的假设。并且可能会发生一些边缘情况,例如,如果本地时间碰巧在夏令时(夏令时)转换附近命名时间。让我们把这些放在一边,但你应该知道这些情况是存在的。
无论如何,如果你能得到一个有效的,你可以把它转换为自纪元以来的毫秒数,就像这样:ZonedDateTime
long millis = zdt.toInstant().toEpochMilli();