【发布时间】:2019-07-26 06:01:54
【问题描述】:
我在我的用例中使用 Java Instant,我想在时间轴中捕捉确切的时刻,例如, {用户上次访问我的网站的时间}。这是数据持久保存在后端 (sql) 中的时间。当我使用 Instant.now(); 时,它以 UTC 格式持续存在;
由于我的网站在所有区域(世界上)都使用,当用户登陆主页时,我想根据他的 zoneId 将 dateTime(他上次访问网站的时间)显示为 localDateTime。
如何获取 ZoneId 信息?
由于我的网站目前托管在 2 台服务器上,并且两台服务器都在印度,如果我这样做 ZoneId.systemDefault(),我总是会得到印度 ZoneId(亚洲/加尔各答)。所以,转换是不可能的。
如果来自美国的某人点击了我的服务器,我如何在我的服务器中获取 zoneId 作为美国?
【问题讨论】:
-
您可以手动提供
ZoneId,但是您需要确定它是否与访问您的服务的IP地址相对应。 -
您可以使用 IP 地址来猜测区域,或者在前端使用一段 Javascript 将您的 UTC 时间戳转换为浏览器的本地区域,或者将该区域发送到您的服务器以使用会议。
标签: java web-services java-8 server java.time.instant