Java 8 : Using Instant, 如何检索 ZoneId 信息

标签 java web-services java-8 server java.time.instant

我正在使用 Java Instant 来处理我的用例,我想捕获时间线中的确切时刻,例如, { 用户上次访问我的网站时}。这是数据在后端(sql)中持久化的时候。当我使用 Instant.now() 时,它会保持 UTC 格式;

由于我的网站在全局所有区域中使用,当用户登陆主页时,我想根据他的 zoneId 将日期时间(他上次访问该网站的时间)显示为 localDateTime。

如何获取ZoneId信息?

由于我的网站目前托管在 2 台服务器上,并且两台服务器都位于印度,因此如果我执行 ZoneId.systemDefault(),我总是会获得印度 ZoneId(亚洲/加尔各答)。因此,转换是不可能的。

如果来自美国的人访问了我的服务器,我如何在我的服务器中获取美国的 zoneId?

最佳答案

最好的办法就是让事情变得简单。

只需使用 UTC 来存储访问时间。前端可以将 UTC 转换为浏览器(即用户)的时区。

关于Java 8 : Using Instant, 如何检索 ZoneId 信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57213977/

相关文章:

java - IntSummaryStatistics 的 summaryStatistics 方法

Java 菜单循环无限重复

java网络服务;未生成方法

java - Bean 忽略请求正文中的额外值

java - 使用axis2的实时Web服务java

java - JMS 可以做什么而 REST 不能做什么

带有总和的 Map of Map 的 Java8 Map

Java 8 集合和流/forEach

java - IntelliJ 中的不适当 'unchecked assignment' 警告

java - Eclipse STS 与 Java 9 的源兼容性问题