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

09-25 20:39