栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java8 LocalDate和LocalDateTIme对日期时间的操作、LocalDate和String的相互转换、两个日期时间的插值计算等等

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java8 LocalDate和LocalDateTIme对日期时间的操作、LocalDate和String的相互转换、两个日期时间的插值计算等等

本文记录下LocalDate和LocalDateTime对日期的常用方法,日期的加减,两个日期时间的时间差,自定义时间格式formatter实现日期和String的相互转换

 注意until的两种写法计算不同的时间差值,详情可看如下注释和例子说明

package com.ssh.mydmx.common;

import lombok.extern.slf4j.Slf4j;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;

@Slf4j
public class LocalDateTest {

    private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
    private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

    public static void main(String[] args) {
        //取当前时间
        LocalDate nowDate = LocalDate.now();
        LocalDateTime nowDataTime = LocalDateTime.now();

        //加30天
        LocalDate nowDatePlus30 = nowDate.plusDays(30L);
        LocalDateTime nowDateTimePlus30 = nowDataTime.plusDays(30L);

        //减5天
        LocalDate nowDateMinus5 = nowDate.minusDays(5L);
        LocalDateTime nowDateTimeMinus5 = nowDataTime.minusDays(5L);

        //定义formatter 也可选择根据自己需要格式,选择使用DateTimeFormatter里定义好的formatter
        //String---------->localDate
        LocalDate parseNowStr = LocalDate.parse("2021-12-31", FORMATTER);
        //localDate----->String
        log.info("localDate----->String={}",parseNowStr.format(FORMATTER));
        log.info("localDate----->String={}",nowDataTime.format(DATE_TIME_FORMATTER));

        //取两个时间差,实际天数差 例如date1-2022-01-30,date2=2021-12-26 时间差====35
        log.info("取时间差===={}",nowDateTimeMinus5.until(nowDateTimePlus30, ChronoUnit.DAYS));
        log.info("取时间差===={}",nowDateMinus5.until(nowDatePlus30,ChronoUnit.DAYS));

        //取两个时间差,只看日期 例如date1-2022-01-30,date2=2021-12-26 时间差====4
        int days = nowDateMinus5.until(nowDatePlus30).getDays();
        log.info("date1-{},date2={}取时间差===={}",nowDatePlus30.format(FORMATTER),nowDateMinus5.format(FORMATTER),days);

        //不足24小时不算一天 2021-12-30 15:51:29和2021-12-31 15:50:29 相差天数=0
        //同理不足一分钟也不算 比如6.4分钟算6分钟
        LocalDateTime demo1 = LocalDateTime.parse("2021-12-31 15:50:29", DATE_TIME_FORMATTER);
        LocalDateTime demo2 = LocalDateTime.parse("2021-12-30 15:51:29", DATE_TIME_FORMATTER);
        log.info("相差天数={}=分钟={}",demo2.until(demo1,ChronoUnit.DAYS),demo2.until(demo1,ChronoUnit.MINUTES));
    }
}

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/685969.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号