TimeZone.getDefault()属性值必须为常量错误

时间:2019-08-26 14:08:46

标签: java json spring timezone

我正在尝试将时区设置为系统默认值。

我在String类中有一个BatchDateUtils.java变量:

public static final String DEFAULT_TIMEZONE = TimeZone.getDefault().toString();

我想要实现的是:

 @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = BatchDateUtils.DEFAULT_TIMEZONE)
private Date reportDateFrom;

我得到:

Attribute value must be constant

总的来说,我理解错误是什么,但是我该如何解决呢?谢谢!

1 个答案:

答案 0 :(得分:3)

如果要在注释中设置值,则必须定义一个常量值,例如 $file = fopen('myFileName.csv','w'); $data= array_map("utf8_decode", $data); fputcsv($file,$data);

取决于JVM配置的东西不是一个常量;但更笼统地说,任何使用方法结果的东西都不是常量。

此外,依赖默认时区很少是一个好主意,因为它可以在运行时更改,很容易配置错误等。