Java8新特性-Date API用法(七)

LocalDate使用

public class LocalDateTest {
    public static void main(String[] args) {

        //LocalDate的获取方式
        //根据年月日初始化
        LocalDate localDate1 = LocalDate.of(2019, Month.MAY, 6);
        //获取当前日期
        LocalDate now  = LocalDate.now();
        //根据字符串解析
        LocalDate localDate2 = LocalDate.parse("2019-01-13");
        System.out.println(localDate2.getYear()+"-"+localDate2.getMonthValue()+"-"+localDate2.getDayOfMonth());
        //根据字符串和指定格式
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyyMMdd HHmmss");
        DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        LocalDateTime localDateTime = LocalDateTime.parse("20190509 121212", dtf);
        System.out.println("------"+dtf2.format(localDateTime));
        //更新替换
        LocalDate localDate3 = localDate2.withMonth(02);

        //获取这个月的最后一天
        LocalDate localDate4 = localDate3.with(TemporalAdjusters.lastDayOfMonth());
        DateTimeFormatter dtf4 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        System.out.println(dtf4.format(localDate4));

    }
}

LocalTime使用

public class LocalTimeTest {
    public static void main(String[] args) {

        LocalTime localTime = LocalTime.of(11,12);
        LocalTime localTime2 = LocalTime.of(11,12,59);
        LocalTime localTime3 = LocalTime.parse("11:12:59");
        DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        LocalTime localTime4 = LocalTime.parse("2019-05-20 11:00:03",dtf2);
        System.out.println(localTime4.getHour());
    }
}

计算两个日期的间隔天数

public class DateApiDemo {

    public static void main(String[] args) {

        //循环遍历两个日期的天数或者计算间隔天数
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        LocalDate start= LocalDate.of(2014, 3, 28);
        LocalDate end= LocalDate.of(2014, 4, 1);
        Period tenDays = Period.between(start, end);
        //这里输出的是6 只能计算同月的天数间隔,不是正确的遍历方式
        System.out.println("days--------"+tenDays.getDays());

        //正确的遍历两个日期中间的每个日期
        //方法一:距离法
        long distance = ChronoUnit.DAYS.between(start,end);
        for(int i=0;i<distance;i++){
            System.out.println(dtf.format(start.plusDays(i)));
        }
        System.out.println(distance);

        //方法二: 利用toEpochDay计算
        System.out.println(end.toEpochDay() - start.toEpochDay());

    }
}

后续用到的api 再补充

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值