日期
Date
java.util.Date
年 月 日 时 分 秒
Date类型输出:utilDate_1 = Sun Jul 17 09:26:07 CST 2016
java.sql.Date
年 月 日
Date类型输出:utilDate_2 = 2016-07-17
如果数据库中需要的是 年 月 日 时 分 秒类型
那么可以先把date类型转成string类型 ---再手动加入“00:00:00”
string类型和date类型相互转化可以用到Oracle的一个函数 to_date()
用法如下:
if (Objects.nonNull(getDocfileListParams.getTime())) {
String Time = getDocfileListParams.getTime() + " 00:00:00";
WHERE("CREATE_DATE >= to_date('" +Time+ "','yyyy-MM-dd hh24:mi:ss')");
}
SELECT
*
FROM
ADULT_HEALTH_EXAM
WHERE
CREATE_DATE = TO_DATE('2021-03-16 00:00:00', 'yyyy-MM-dd hh24:mi:ss')
--not yyyy-MM-dd hh:mm:ss
java.sql.Timestamp
年 月 日 时 分 秒 毫微秒
输出:sqlTimestamp = 2016-07-17 09:26:07.342
LocalDate
只含年月日的日期对象
LocalDate localDate = LocalDate.now();
LocalTime localTime = LocalTime.now();
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println(localDate);//2022-04-16
System.out.println(localTime);//04:16:04.016
System.out.println(localDateTime);//2022-04-16T04:16:04.016
LocalTime
只含时分秒的时间对象
LocalDateTime
同时含有年月日时分秒的日期对象
日期时间的加减
对于LocalDate,只有精度大于或等于日的加减,如年、月、日;
对于LocalTime,只有精度小于或等于时的加减,如时、分、秒、纳秒;
对于LocalDateTime,则可以进行任意精度的时间相加减;
LocalDateTime localDateTime = LocalDateTime.now();
//以下方法的参数都是long型,返回值都是LocalDateTime
LocalDateTime plusYearsResult = localDateTime.plusYears(2L);
LocalDateTime plusMonthsResult = localDateTime.plusMonths(3L);
LocalDateTime plusDaysResult = localDateTime.plusDays(7L);
LocalDateTime plusHoursResult = localDateTime.plusHours(2L);
LocalDateTime plusMinutesResult = localDateTime.plusMinutes(10L);
LocalDateTime plusSecondsResult = localDateTime.plusSeconds(10L);
System.out.println("当前时间是 : " + localDateTime + "\n"
+ "当前时间加2年后为 : " + plusYearsResult + "\n"
+ "当前时间加3个月后为 : " + plusMonthsResult + "\n"
+ "当前时间加7日后为 : " + plusDaysResult + "\n"
+ "当前时间加2小时后为 : " + plusHoursResult + "\n"
+ "当前时间加10分钟后为 : " + plusMinutesResult + "\n"
+ "当前时间加10秒后为 : " + plusSecondsResult + "\n"
);
//也可以以另一种方式来相加减日期,即plus(long amountToAdd, TemporalUnit unit)
// 参数1 : 相加的数量, 参数2 : 相加的单位
LocalDateTime nextMonth = localDateTime.plus(1, ChronoUnit.MONTHS);
LocalDateTime nextYear = localDateTime.plus(1, ChronoUnit.YEARS);
LocalDateTime nextWeek = localDateTime.plus(1, ChronoUnit.WEEKS);
System.out.println("now : " + localDateTime + "\n"
+ "nextYear : " + nextYear + "\n"
+ "nextMonth : " + nextMonth + "\n"
+ "nextWeek :" + nextWeek + "\n"
);
//日期的减法用法一样,在此不再举例