我正在使用 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/