获取特定时区中的当前 Instant

Maa*_*mon 9 java scala java-8 java-time

我试图在特定时区获取当前实例,但它没有按预期工作。关于如何做到这一点的任何想法?

这是我所做的:

Instant.now(Clock.system(ZoneId.of("America/Los_Angeles"))).truncatedTo(ChronoUnit.SECONDS)
Run Code Online (Sandbox Code Playgroud)

但是,返回的即时时间始终是 UTC。我多次更改 ZoneID 并且总是错误。请指教。

编辑:

我正在与使用 timeStamp 生成日志的应用程序进行交互,我需要对这些事件进行操作。立即,如果我使用特定的时间戳启动我的程序,它应该从该时间戳开始读取事件。虽然我的笔记本电脑与生成这些事件的应用程序在同一个时区,但当我得到 Instant.Now() 时,我似乎在 UTC 中。而应用程序根据我们所在的时区生成时间戳。我希望我的程序的时钟与服务器中的时钟相同。

应用程序生成 2016-08-04T18:17:51Z 形式的时间戳

Gui*_*Sim 13

Instant不知道时区。如果您需要时区感知时间戳,则应使用ZonedDateTime.

检查ZonedDateTime.now(timezone)哪个将使用提供的时区。要使用机器的默认时区,请使用ZonedDateTime.now()

如果您想解析 ZonedDateTime 并覆盖时区,您可以使用ZonedDateTime.withZoneSameLocalZonedDateTime.withZoneSameInstant根据您的需要。