我正在使用Java 8和Spring 4编写的网站上工作,我们正在使用Java 8标准时间api,现在页面上始终显示服务器时间(在用户个人资料中显示其注册日期)。使用旧的Java时间api可以使用SimpleDateFormat,但现在不适合使用。有没有办法在jsp页面或控制器中将服务器时间转换为客户端时间?
最佳答案
处理此问题的方法之一是在请求中使用AJAX或其他相关技术来获取用户的时区字符串(GMT,IST等)。
现在,通过使用新的Java 8 Local date 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 );