关于Date日期的一些总结

日期

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"
        );
        
//日期的减法用法一样,在此不再举例

详情请看:LocalDateTime用法 - 简书 (jianshu.com)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值