java.sql.Date到joda时间转换

tur*_*off 16 java sql oracle jodatime

oracle sql:

select trunc( sysdate, 'Month') month
from dual
Run Code Online (Sandbox Code Playgroud)

Java的:

java.sql.Date sqlDate = resultSet.getDate("month");
log.info(sqlDate);
DateTime dateTime = new DateTime(sqlDate.getTime());
log.info(dateTime);
dateTime = dateTime.withMillisOfDay(0);
log.info(dateTime);
Run Code Online (Sandbox Code Playgroud)

输出:

2012-01-01

2012-01-01T 01:00:00.000 + 07:00

2012-01-01T 00:00:00.000 + 07:00

额外的一小时在哪里?

Jod*_*hen 15

用于LocalDate.fromDateFields(date)将SQL日期解释为本地(忽略时区).然后,您可以根据需要使用方法LocalDate来获取DateTime(如果您的对象确实只是"日期",那么LocalDate它是正确的对象.