Java JPAGET请求显示存储在数据库中的日期的前一天
我使用SpringBoot来管理我的RESTAPI。我使用API将出生日期存储在postgreSQL数据库中,日期为1983年2月10日,json有效负载为“dateOfBirth”:“1983年2月10日”,并按原样存储,数据库结果显示了确切的日期。 当我使用SpringBootAPI调用获取记录时,返回的日期是1983年10月1日之前的一天。每个日期值都在前一天返回。 我还使用以下代码添加了一个日期以插入日期:Java JPAGET请求显示存储在数据库中的日期的前一天,java,spring,spring-boot,spring-data-jpa,spring-restcontroller,Java,Spring,Spring Boot,Spring Data Jpa,Spring Restcontroller,我使用SpringBoot来管理我的RESTAPI。我使用API将出生日期存储在postgreSQL数据库中,日期为1983年2月10日,json有效负载为“dateOfBirth”:“1983年2月10日”,并按原样存储,数据库结果显示了确切的日期。 当我使用SpringBootAPI调用获取记录时,返回的日期是1983年10月1日之前的一天。每个日期值都在前一天返回。 我还使用以下代码添加了一个日期以插入日期: long millis=System.currentTimeMillis();
long millis=System.currentTimeMillis();
Date currentDate=new Date(millis);
这也会将日期保存为数据库中的当前日期,但使用rest API get调用返回日期前一天的。可能是时区问题?如果是时区问题,保存当前日期应该比数据库早一天,对吗?或者返回手动存储的DB保存日期应该是准确的日期,对吗?因为这是一个select语句。可能是我错了,如果是这样请更正我,如果是amwhat,在db中存储日期的列的数据类型是什么?db中的date列,java.sql.date;在springboot中,也可以使用@JsonFormat(shape=JsonFormat.shape.STRING,pattern=“dd/MM/yyyy”)来格式化日期列,这看起来像是数据库和服务器之间的时区差异。您可以检查以毫秒为单位保存的日期和以毫秒为单位检索的日期。如果它们相同,则应调整时区。