美文网首页
Java时间和日期处理总结

Java时间和日期处理总结

作者: 今有所思 | 来源:发表于2018-11-16 20:28 被阅读8次

    https://blog.csdn.net/truong/article/details/50083147

    https://zhuanlan.zhihu.com/p/28055974

    https://www.liaoxuefeng.com/article/00141939241051502ada88137694b62bfe844cd79e12c32000

    https://zhuanlan.zhihu.com/p/33754299

    https://juejin.im/post/5addc7a66fb9a07aa43bd2a0

    https://www.jianshu.com/p/2949db9c3df5

    http://www.importnew.com/14857.html

    http://www.importnew.com/14140.html

    Java 8仍然延用了ISO的日历体系,并且与它的前辈们不同,java.time包中的类是不可变且线程安全的。新的时间及日期API位于java.time包中,下面是里面的一些关键的类:

    • Instant——它代表的是时间戳
    • LocalDate——不包含具体时间的日期,比如2014-01-14。它可以用来存储生日,周年纪念日,入职日期等。
    • LocalTime——它代表的是不含日期的时间
    • LocalDateTime——它包含了日期及时间,不过还是没有偏移信息或者说时区。
    • ZonedDateTime——这是一个包含时区的完整的日期时间,偏移量是以UTC/格林威治时间为基准的。

    Instant:时间戳
    Duration:持续时间,时间差
    LocalDate:只包含日期,比如:2016-10-20
    LocalTime:只包含时间,比如:23:12:10
    LocalDateTime:包含日期和时间,比如:2016-10-20 23:14:21
    Period:时间段
    ZoneOffset:时区偏移量,比如:+8:00
    ZonedDateTime:带时区的时间
    Clock:时钟,比如获取目前美国纽约的时间

    以及java.time.format包中的

    DateTimeFormatter:时间格式化

    新的库还增加了ZoneOffset及Zoned,可以为时区提供更好的支持。有了新的DateTimeFormatter之后日期的格式化也变得焕然一新了。

    Year类

    // Year类
    // 当前年份
    Year year = Year.now();
    System.out.println(year);
    // 指定年份
    System.out.println(Year.of(2018));
    // 判断年份是否是闰年
    System.out.println(Year.isLeap(2018));
    // 返回年份的天数
    System.out.println(year.length());
    // 年份的加减
    System.out.println(year.plusYears(2));
    System.out.println(year.minusYears(2));
    
    

    Month类

    // Month类
    // enum类里定义了12个月份
    Month may = Month.MAY;
    // 返回这个月份的数值,1月份是1
    System.out.println(Month.JANUARY.getValue());// 1
    System.out.println(may.getValue());//5
    // 月份加减
    System.out.println(may.plus(1));//JUNE
    // 当超过12时,取余数 (int) (months % 12)
    System.out.println(may.plus(12));//MAY
    System.out.println(may.minus(1));//APRIL
    // 返回月份的第一天是一年中的第n天
    System.out.println(may.firstDayOfYear(true));//122
    // 返回该月最小和最大的天数,主要区别在2月
    System.out.println(may.minLength());//31
    System.out.println(may.maxLength());//31
    
    System.out.println(Month.FEBRUARY.minLength());//28
    System.out.println(Month.FEBRUARY.maxLength());//29
    

    时区

    LocalDate类

    相关文章

      网友评论

          本文标题:Java时间和日期处理总结

          本文链接:https://www.haomeiwen.com/subject/rjrvfqtx.html