【问题标题】:How to show time depend on timezone in java 8 and spring 4?如何显示时间取决于 java 8 和 spring 4 中的时区?
【发布时间】:2014-08-08 09:00:40
【问题描述】:
我在使用 java 8 和 spring 4 编写的网站上工作,我们使用的是 java 8 标准时间 api,现在页面上总是显示服务器时间(在用户配置文件中显示他的注册日期)。使用旧的 java time api 可以使用 SimpleDateFormat,但现在不适合。有没有办法在jsp页面或控制器中将服务器时间转换为客户端时间?
【问题讨论】:
标签:
java
timezone
java-8
datetime-format
spring-4
【解决方案1】:
处理此问题的一种方法是在请求中获取用户时区字符串(GMT、IST 等)(使用 AJAX 或其他相关技术。)
现在通过使用新的 Java 8 本地日期 API,我们可以实现如下:
第 1 步: 使用 Java 8 ZoneId 类从提供我们从 ajax 获得的区域查询参数中获取区域。 :
ZoneId losAngeles = ZoneId.of("America/Los_Angeles");
第 2 步: 使用 LocalTime API 根据该时区获取当前时间,如下所示:
ZoneId losAngeles = ZoneId.of("America/Los_Angeles");
LocalDateTime currentTimeInLosAngeles = LocalTime.now(losAngeles );
第 3 步: 使用 Java 8 ZonedDateTime 类获取特定区域的 DATETIME
ZoneId losAngeles = ZoneId.of("America/Los_Angeles");
LocalDateTime currentTimeInLosAngeles = LocalTime.now(losAngeles );
ZonedDateTime losAngelsDateTime = ZonedDateTime.of(currentTimeInLosAngeles , losAngeles );