各位大佬:
从数据库查到的时间使用jackson的@JsonFormat进行格式化:
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date beginTime;
由于GMT+8这种常量不利于国际化,所以我想使用系统时区作为timezone。
我的方法:
1 使用默认时区
@JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "HH:mm",timezone = JsonFormat.DEFAULT_TIMEZONE)
private Date timeQuantumBegin;
2 配置objectMapper,设置系统时区
@Autowired
public void configureJackson(ObjectMapper objectMapper) {
objectMapper.setTimeZone(TimeZone.getDefault());
}
但是效果还是达不到,差了八个小时。请问是我哪里做的不对吗?
统一用UTC0即可,返回标准的带时区偏移信息的时间。
推荐使用Java中新的时间API,OffsetDateTime。
已经解决,参考:
https://cloud.tencent.com/developer/article/1572118
根本原因是引用的jar包中配置了一个objectMapper.
导致我的代码失效。
debug看下objectMapper的timezone是不是你预期设置的值。。
– 。淑女范erり 4年前@。淑女范erり:这个确认过了,没问题。在配置文件中设置:spring.jackson.time-zone=GMT+8 也不起作用。难受
– ImagineDranges 4年前