我有一个带有日期字段的简单Java对象:
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date date;
当我使用调试器调查日期时,我看到:
Wed Jun 14 00:00:00 BST 2017
但是一旦我用
Spring boot
controller
返回它,我得到:"date": "2017-06-13 23:00:00"
BST
? Date
类包含时区信息还是长格式的纯时间戳? Spring boot
是否使用UTC
格式? 最佳答案
java.util.Date
没有时区信息(只有long
时间戳),但是它在toString()
方法中使用系统的默认时区-您可以找到有关此here的更多信息(如注释中所建议)。
只需检查TimeZone.getDefault()
的值即可。可能是Europe/London
-像现在夏天的伦敦一样,此时区的简称(由Date.toString()
使用)是BST
。
如您的输出所示,Spring可能正在使用UTC
(因为2017-06-13 23:00:00
中的UTC
是2017-06-14 00:00:00
中的BST
)。