@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy", timezone = "Asia/Kolkata")
private Date activationDate;
从上面的java代码中,我想使用以下方法将时区值设置为“当前系统”时区:TimeZone.getDefault()。getID()-返回值为“亚洲/加尔各答”
但是如果我将此代码设置为json格式
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy", timezone = TimeZone.getDefault().getID())
我收到类似的错误“注释属性JsonFormat.timezone的值必须是一个常量表达式” 请帮我解决这个问题。
提前致谢,
毗湿奴
最佳答案
正确配置ObjectMapper 后,可以使用JsonFormat.DEFAULT_TIMEZONE
,:
从文档中:@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy", timezone = JsonFormat.DEFAULT_TIMEZONE)
为了配置ObjectMapper
:
要在应用程序上设置默认的TimeZone,请使用以下JVM属性:@Configuration
public class MyApp {
@Autowired
public void configureJackson(ObjectMapper objectMapper) {
objectMapper.setTimeZone(TimeZone.getDefault());
}
}
-Duser.timezone=Asia/Kolkata
关于java - 将当前TimeZone设置为@JsonFormat时区值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46011703/