zoukankan      html  css  js  c++  java
  • JDK 8 中时间API

    一、分类

    1、时间对象

    • TemporalAccessor: 顶级接口
    • Temporal: 子接口,继承TemporalAccessor接口
    • Era: 子接口,继承TemporalAccessor接口
    • Instant: 时间戳,有时区(UTC时区),实现Temporal、TemporalAdjuster接口
    • LocalDate: 日期,无指定时区,实现Temporal、TemporalAdjuster接口
    • LocalTime: 时间,指定时区,实现Temporal、TemporalAdjuster接口
    • LocalDateTime: 日期时间,指定时区,实现Temporal、TemporalAdjuster接口
    • OffsetTime: 偏移后时间,指定时区,实现Temporal、TemporalAdjuster接口
    • OffsetDateTime: 偏移后日期时间,无指定时区,实现Temporal、TemporalAdjuster接口
    • ZonedDateTime: 时区日期时间,无指定时区,实现Temporal、TemporalAdjuster接口

    2、时区、偏移量

    • ZoneId: 时区
    • ZoneOffset: 时区偏移量

    3、工具类

    • TemporalAdjuster: 功能型接口
    • TemporalAdjusters: 工具类,每个方法中生成一个匿名类,实现了TemporalAdjuster接口
    // 下一个周几
    public static TemporalAdjuster next(DayOfWeek dayOfWeek) {
        int dowValue = dayOfWeek.getValue();
        return (temporal) -> {
            int calDow = temporal.get(DAY_OF_WEEK);
            int daysDiff = calDow - dowValue;
            return temporal.plus(daysDiff >= 0 ? 7 - daysDiff : -daysDiff, DAYS);
        };
    }
    // 下一个周一时间
    LocalDate ld = LocalDate.now();
    System.out.println("LocalDate: " + ld);
    ld = ld.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
    System.out.println("LocalDate next TUESDAY: " + ld);
    
    // LocalDate: 2019-12-30
    // LocalDate next MONDAY: 2020-01-06
    // with方法内部调用了匿名类的adjustInto方法
    public LocalDate with(TemporalAdjuster adjuster) {
        // optimizations
        if (adjuster instanceof LocalDate) {
            return (LocalDate) adjuster;
        }
        return (LocalDate) adjuster.adjustInto(this);
    }

    4、日期格式化

    • DateTimeFormatter
    DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss:SSS");
  • 相关阅读:
    ASP.NET CORE 2.0 模板 (Admin LTE)
    MVC5+EF6 完整教程17--升级到EFCore2.0
    MVC 5 + EF6 完整教程16 -- 控制器详解
    MVC 5 + EF6 完整教程15 -- 使用DI进行解耦
    MVC 5 + EF6 入门完整教程14 -- 动态生成面包屑导航
    MVC5+EF6 入门完整教程13 -- 动态生成多级菜单
    MVC5+EF6 入门完整教程12--灵活控制Action权限
    MVC5+EF6 入门完整教程11--细说MVC中仓储模式的应用
    LeetCode 504. Base 7
    LeetCode 594. Longest Harmonious Subsequence
  • 原文地址:https://www.cnblogs.com/pascall/p/12119131.html
Copyright © 2011-2022 走看看