以下是DB中的日期:
下面是代码:
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
。
答案 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
,现在可以正常使用了。