zoukankan      html  css  js  c++  java
  • Java 8的Time包常用API

    Date、Canlender、SimpleDateFormat类在新的Time包面前几乎没有优势

    日期LocalDate,时间LocalTime,日期时间LocalDateTime。

    时区ZoneId,时间点Instant,时间单位ChronoUnit,格式化DateTimeFormatter

    LocalDate

    当前日期

        LocalDate localDate = LocalDate.now();

    指定日期

        // (方式1)
        LocalDate localDate1 = LocalDate.of(2017, 07, 20);
        // (方式2)
        LocalDate localDate2 = LocalDate.parse("2017-07-25");

    日期加/减 多少个时间单位

        // 加1个月(方式1)
        LocalDate localDate = localDate.plus(1, ChronoUnit.MONTHS);
        // 加1天(方式2)
        LocalDate localDate = localDate.plusDays(1);

    解析日期

        int dayOfMonth = localDate.getDayOfMonth();

    是否闰年

        boolean b = localDate.isLeapYear();

    是否是一个日期之前/之后

        boolean b = localDate1.isBefore(localDate2);
        boolean b = localDate1.isAfter(localDate2);

    两个日期相差多少个时间单位

        // 相差多少天
    long
    diff = ChronoUnit.DAYS.between(localDate1, localDate2); // 相差多少秒
    long diff = ChronoUnit.SECONDS.between(localDate1, localDate2);

    格式化

        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        String s = dateTimeFormatter.format(localDate);

    两个日期是否相等

        boolean b = localDate1.equals(localDate2);

    LocalTime

    大部分的API与LocalDate同理,区别之处在于

    1、无法判断是否闰年

    2、LocalDate对象toString()返回的是“2017-11-09”,LocalTime对象toString()返回的是“11:16:50.144”(如果毫秒数为0,则最后一段数字不显示),如果想要返回HH:mm:ss格式,需要格式化。

    LocalDateTime

    大部分的API与LocalDate同理,区别之处在于

    1、无法直接判断是否闰年,需要先转化为LocalDate

    boolean b = localDateTime.toLocalDate().isLeapYear();

    2、LocalDateTime对象toString()返回的是“2017-11-09T11:16:50.144”,如果想要返回HH:mm:ss格式,需要格式化。

    处理遗留代码中的java.util.Date对象

    先将Date转化为Instant对象,然后根据需要用LocalDate、LocalTime、LocalDateTime各自的from工厂方法生成对象

        // 遗留代码
        Date birthday = user.getBirthday();
        Date orderTime = order.getOrderTime();
        // 转换
        LocalDate birthdayEx = LocalDate.from(birthday.toInstant());
        LocalDateTime orderTimeEx = LocalDateTime.from(orderTime.toInstant());

    处理遗留代码中的java.util.Calendar对象

    java.util.Date对象的转化同理,Calendar对象也有toInstant方法。

  • 相关阅读:
    spring mvc 详细配置
    eclipse PermGen space解决方案
    JDK环境变量详细讲解
    Linux 中如何卸载已安装的软件
    Struts2工作原理
    HashMap的工作原理深入再深入
    Session的工作原理
    什么办法可以替代distinct
    脚踏实地才能仰望星空
    Ubuntu 进阶命令——长期不定时更新
  • 原文地址:https://www.cnblogs.com/deolin/p/7808619.html
Copyright © 2011-2022 走看看