【发布时间】:2018-10-07 16:40:09
【问题描述】:
早安,
我正在做一个项目报告。
这是我第一次处理日期时间。
我有数据库 mongodb,因为我们知道 mongodb 以 UTC 存储日期时间。
现在我想显示用户提供的日期和时区的数据。
例如,如果我在我的系统中登录,我可以从下拉列表中设置我的时区。假设我现在选择 GMT+05:00,如果我选择日期开始和结束为 2018-07-05 和 2018-07-06
如何获得用户指定时区的正确时间。
我猜如果用户选择了 GMT+05:00 时区,那么日期必须从 2018-07-04 19:00:00 和 2018-07-05 19:00:00 开始,从给定时间减去 5 小时.
我怎样才能做到这一点是java。
【问题讨论】:
-
我认为您无法在后端获取此信息。您需要一个客户端方法来获取时区。
-
我已经在会话中存储了用户选择的时区
-
Java 8 为此提供了很多不错的时间类。您可以使用
Instant.ofEpochSecond或类似方法将 UNIX 纪元值转换为 Instant,然后通过atZone方法转换为 ZonedDateTime。区域来自TimeZone.getTimeZone(String).toZoneId。然后使用 DateTimeFormatter 格式化。 -
(a) 举例说明你的输入和输出。 (b) 数以千计的现有日期时间问题和答案如何没有满足您的需求?
标签: java time timezone utc gmt