Java时间相关操作,时间增加减少以及转换

本文展示了如何在Java中使用LocalDateTime进行时间的增加和减少,如加减秒、小时、天、月等。同时,文章提供了将Date转换为LocalDateTime、LocalDate,以及LocalDateTime和LocalDate转换回Date的方法。

1.localdatetime类型时间增加减少

LocalDateTime localDateTime = LocalDateTime.now().plusSeconds(20);// 当前时间加20秒

LocalDateTime localDateTime1 = LocalDateTime.now().plusHours(20);// 当前时间加20小时

LocalDateTime localDateTime2 = LocalDateTime.now().plusDays(20);// 当前时间加20天

LocalDateTime localDateTime3 = LocalDateTime.now().plusMinutes(20);// 当前时间加20分钟

LocalDateTime localDateTime4 = LocalDateTime.now().plusMonths(20);// 当前时间加20月 // ....

LocalDateTime localDateTime5 = LocalDateTime.now().minusSeconds(20);// 当前时间减20秒

LocalDateTime localDateTime6 = LocalDateTime.now().minusHours(20);// 当前时间减20小时

LocalDateTime localDateTime7 = LocalDateTime.now().minusDays(20);// 当前时间减20天

LocalDateTime localDateTime8 = LocalDateTime.now().minusMinutes(20);// 当前时间减20分钟

LocalDateTime localDateTime9 = LocalDateTime.now().minusMonths(20);// 当前时间减20月 // ....

// date 类型时间增加 //

方法一

Date date=new Date();//取时间 System.out.println(date.toString());

Calendar calendar = new GregorianCalendar(); calendar.setTime(date);

calendar.add(calendar.YEAR, 1);//把日期往后增加一年.整数往后推,负数往前移动

calendar.add(calendar.DAY_OF_MONTH, 1);//把日期往后增加一个月.整数往后推,负数往前移动

calendar.add(calendar.DATE,1);//把日期往后增加一天.整数往后推,负数往前移动

calendar.add(calendar.WEEK_OF_MONTH, 1);//把日期往后增加一个月.整数往后推,负数往前移动

date=calendar.getTime(); //这个时间就是日期往后推一天的结果

System.out.println(date.toString());

// 方法二

Date date1 = new Date();

date.setTime(date.getTime() + 15*60*1000); // 当前时间增加15分钟

System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS").format(date)); 

2. LocalDateTime、LocalDate、Date相互转化

 /**
     * Date转换为LocalDateTime
     *
     * @param date
     */
    public static LocalDateTime date2LocalDateTime(Date date) {
        Instant instant = date.toInstant();
        ZoneId zoneId = ZoneId.systemDefault();
        return instant.atZone(zoneId).toLocalDateTime();
    }

    /**
     * Date转换为LocalDate
     *
     * @param date
     */
    public static LocalDate date2LocalDate(Date date) {
        return date2LocalDateTime(date).toLocalDate();
    }


    /**
     * localDateTime转换为Date
     *
     * @param localDateTime
     */
    public static Date localDateTime2Date(LocalDateTime localDateTime) {
        ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault());
        return Date.from(zdt.toInstant());
    }

    /**
     * localDate转换为Date
     *
     * @param localDate
     */
    public static Date localDate2Date(LocalDate localDate) {
        ZonedDateTime zdt = localDate.atStartOfDay(ZoneId.systemDefault());
        return Date.from(zdt.toInstant());
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值