java.sql.日期到joda时间转换

2022-09-02 21:59:06

oracle sql:

select trunc( sysdate, 'Month') month
from dual

爪哇岛:

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);

输出:

2012-01-01

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

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

额外的一小时在哪里?


答案 1

用于将 SQL 日期解释为本地日期(忽略时区)。然后,您可以使用方法 on 来获取必要时(尽管如果您的对象确实是“只是一个日期”,那么是正确的对象。LocalDate.fromDateFields(date)LocalDateDateTimeLocalDate


答案 2

默认构造函数使用系统默认构造函数,这可能会导致与 DST 有关的问题。我发现toDateMidnight功能在试图确保我实际上是在午夜时分时非常有用。


推荐