我有一个具有日期字段的实体:
import java.util.Date;
...
@Basic(optional = false)
@Column(name = "ora_programare")
@Temporal(TemporalType.TIMESTAMP)
private Date oraProgramare;
字符串
在我的rest控制器中,我在处理我的入口点的函数结束之前打印这个字段的值,我可以看到日期字段的值是
2019 -08-01 08:30:00.0
但在《 Postman 》中,我收到了一个不同的日期:
“oraProgramare”:2023-08-01T05:00:00.000+00:00
所有的日期都改变了3小时30分钟,为什么?
UPDATE:我找到了一个解决方案here,如果我用
@JsonFormat(pattern =“yyyy-MM-dd hh:mm:ss”,timezone=“Europe/布加勒斯特”)
那么小时是正确的,但我不明白,我的默认时区是“欧洲/布加勒斯特”,为什么Spring分配错误的时区?我使用以下命令检查了默认时区:
System.out.println("ZoneId.systemDefault() "+ZoneId.systemDefault());
型
但是注解所有的日期时间字段很复杂,我将尝试将类型从Date改为LocalDateTime
1条答案
按热度按时间yhxst69z1#
将字段的类型从Date更改为LocalDateTime解决了这个问题,我不确定Date类型的问题是什么,它似乎默认为错误的默认时区。