从db中休眠的错误日期(少一天)

时间:2018-01-13 08:29:50

标签: java hibernate date

以下是DB中的日期:

  • CREATED_TIME
  • 2018-01-02 04:30:00.756

下面是代码:

List<Date> dataList=new ArrayList<Date>();
query= "SELECT createdTime FROM TableName";
…
…

dataList=selectQuery.list();
for(Object data[] : dataList) {
    System.out.println("Date and time -> "+data[2]); //getting one day less than the original 
}

如果日期为01-01-2018,我的结果为02-01-2018

2 个答案:

答案 0 :(得分:0)

您获得的日期可能包含时区信息, 因此,请确保数据库正在使用您的代码运行时区 或更好的所有UTC

答案 1 :(得分:0)

我使用Error in connection_sql_columns(connection@ptr, table_name = validateObjectName(table, : nanodbc/nanodbc.cpp:2593: HY004: [Oracle][ODBC]Invalid SQL data type <-25>. 中的LocalDate而不是java.time中的Date来更改实体,因为我的MySQL docker容器中存在相同的问题。

尝试解决该问题,我从MySQL config文件中更改了配置,但是得到了相同的结果,然后在查看网站https://thorben-janssen.com/hibernate-jpa-date-and-time/时,我发现了一个将Java类型与JDBC时间进行比较的表。 根据表格,我从java.util更改为Date,现在可以正常使用了。