@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:
@Configuration
public class MyApp {

    @Autowired
    public void configureJackson(ObjectMapper objectMapper) {
        objectMapper.setTimeZone(TimeZone.getDefault());
    }
}
要在应用程序上设置默认的TimeZone,请使用以下JVM属性:
-Duser.timezone=Asia/Kolkata

关于java - 将当前TimeZone设置为@JsonFormat时区值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46011703/

10-13 05:23