接口中的默认方法与静态方法

Java 8中允许接口中包含具有具体实现的方法,该方法称为“默认方法”,默认方法使用 default 关键字修饰。

default String getName(){ return "呵呵呵";}

接口默认方法的”类优先”原则

若一个接口中定义了一个默认方法,而另外一个父类或接口又定义了一个同名的方法时。选择父类中的方法。如果一个父类提供了具体的实现,默认使用父类的方法

接口冲突。如果一个父接口提供一个默认方法,而另一个接口也提供了一个具有相同名称和参数列表的方法(不管方是否是默认方法),那么必须覆盖该方法来解决冲突(选择采取那个接口的方法实现)



新时间日期

使用 LocalDate、LocalTime、LocalDateTime

LocalDate、LocalTime、LocalDateTime 类的实例是不可变的对象(线程安全),分别表示使用 ISO-8601日历系统的日期、时间、日期和时间。


Instant 时间戳

用于“时间戳”的运算。它是以Unix元年(传统的设定为UTC时区1970年1月1日午夜时分)开始所经历的描述进行运算

Instant ins = Instant.now(); //默认使用 UTC 时区System.out.println(ins);//将时间偏移8小时OffsetDateTime odt = ins.atOffset(ZoneOffset.ofHours(8));System.out.println(odt);//将时间转为纳秒System.out.println(ins.getNano());//偏移5秒Instant ins2 = Instant.ofEpochSecond(5);System.out.println(ins2);

输出样式


Duration 和 Period

Duration:用于计算两个“时间”间隔

Instant ins1 = Instant.now();Instant ins2 = Instant.now();System.out.println("所耗费时间为:" + Duration.between(ins1, ins2));

Period:用于计算两个“日期”间隔

LocalDate ld1 = LocalDate.now();LocalDate ld2 = LocalDate.of(2011, 1, 1);Period pe = Period.between(ld2, ld1);

日期的操纵(时间校正器)

TemporalAdjuster (接口): 时间校正器。有时我们可能需要获取例如:将日期调整到“下个周日”等操作。

TemporalAdjusters : 该类通过静态方法提供了大量的常用 TemporalAdjuster 的实现

代码实例:

LocalDateTime ldt = LocalDateTime.now(); System.out.println(ldt); //将日期设为10 LocalDateTime ldt2 = ldt.withDayOfMonth(10); System.out.println(ldt2); //下一个周末 LocalDateTime ldt3 = ldt.with(TemporalAdjusters.next(DayOfWeek.SUNDAY)); System.out.println(ldt3);

解析与格式化

java.time.format.DateTimeFormatter 类

//使用系统的样式格式// DateTimeFormatter dtf = DateTimeFormatter.ISO_LOCAL_DATE; //自定义事件输出格式 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss E");  LocalDateTime ldt = LocalDateTime.now(); String strDate = ldt.format(dtf);  System.out.println(strDate); //将字符串转解析为时间 LocalDateTime newLdt = LocalDateTime.parse(strDate, dtf); System.out.println(newLdt);

时区的处理

Java8 中加入了对时区的支持,带时区的时间为分别为:

ZonedDate、ZonedTime、ZonedDateTime

其中每个时区都对应着 ID,地区ID都为 “{区域}/{城市}”的格式例如 :Asia/Shanghai 等

ZoneId:该类中包含了所有的时区信息 ; getAvailableZoneIds() : 可以获取所有时区时区信息 ; of(id) : 用指定的时区信息获取 ZoneId 对象

代码实例

//获取上海时区的时间LocalDateTime ldt = LocalDateTime.now(ZoneId.of("Asia/Shanghai"));System.out.println(ldt);//返回带时区信息的时间ZonedDateTime zdt = ZonedDateTime.now(ZoneId.of("US/Pacific"));System.out.println(zdt);//获取所有的时区Set set = ZoneId.getAvailableZoneIds();

与传统日期处理的转换



重复注解与类型注解

Java 8对注解处理提供了两点改进:可重复的注解及可用于类型的注解

判断是否是日期格式_Java8新特性之新世间与日期相关推荐

  1. Jdk8新特性一:jdk8新特性之default关键字、日期类、Base64类、Optional

    Jdk8新特性一:jdk8新特性之default关键字.日期类.Base64类.Optional 文章目录 Jdk8新特性一:jdk8新特性之default关键字.日期类.Base64类.Option ...

  2. Java8新特性之新时间API

    Java8新特性之新时间API 一.新时间API 1.1 之前时间API存在问题:线程安全问题.设计混乱 1.2 本地化日期时间API:LoaclDate.LocalTime.LocalDateTim ...

  3. ES7新特性01-ES7新特性

    ES7新特性01-ES7新特性 文章目录 ES7新特性01-ES7新特性 includes **(幂运算) <!DOCTYPE html> <html lang="en&q ...

  4. C++11新特性之新类型与初始化

    C++11新特性之新类型与初始化 snoone | 2016-06-23 11:57    浏览量(148)    评论(0)   推荐(0) 数据 这是C++11新特性介绍的第一部分,比较简单易懂, ...

  5. linux下软件发布,Linux Kernel 5.12发布下载,附新特性及新功能介绍

    Linus Torvalds在Linux内核邮件列表中宣布正式发布Linux Kernel 5.12版本,已提供linux-5.12.tar.xz/tar.gz下载,以下为你介绍该版本的更改.新特性及 ...

  6. ES10新特性01-ES10新特性

    ES10新特性01-ES10新特性 文章目录 ES10新特性01-ES10新特性 一.Object.fromEntries 二.字符串的扩展方法-trimStart 与 trimEnd 三.数组方法扩 ...

  7. java instant获取微秒转成日期格式_Java8新特性时间日期库DateTime API及示例

    点击上方蓝字关注「程序新视界」 Java8新特性的功能已经更新了不少篇幅了,今天重点讲解时间日期库中DateTime相关处理.同样的,如果你现在依旧在项目中使用传统Date.Calendar和Simp ...

  8. java新的日期_java8你应该了解的新特性(新时间与日期API)

    java8你应该了解的新特性(新时间与日期API) java8,你应该了解的新特性(新时间与日期API) 1.使用 LocalDate .LocalTime .LocalDateTime LocalD ...

  9. JDK8新特性(五):JDK8时间日期API

    本文目录: 前言 1.旧版日期时间API存在的问题 2.新日期时间 API 介绍 3.用法介绍 1.JDK8 日期和时间类 2.JDK8 日期时间格式化与解析 3.JDK8 Instant 类 4.J ...

  10. JDK8新特性:新日期时间API全面学习

    旧版jdk对时间和日期的设计非常差 1.设计不合理 在java.util和Java.sql 包中都有日期类,java.util.Data同时包含日期和时间 而Java.sql.Date仅仅包含日期 此 ...

最新文章

  1. 小小flash动画_flash宣传动画视频能给公司品牌传播带来什么
  2. python socket代码_python入门之socket代码练习
  3. linux如何get请求urlencode,如何为curl命令urlencode数据?
  4. 基于前后端分离实现阿里云对象存储小案例
  5. 机器学习-特征抽取02
  6. ubuntu下安装ipm包
  7. [Java] 蓝桥杯ALGO-100 算法训练 整除问题
  8. Typora 官网被Q了?(文中附下载地址)
  9. 病毒的分类和命名规则
  10. 一文详解 Android热修复实现原理
  11. 学习笔记14--环境感知传感器技术之毫米波雷达
  12. php: 远程操作浏览器cookie存储入门
  13. cufflinks suit
  14. java 413错误,413错误——线上bug历险记
  15. 利用frp 进行远程桌面控制
  16. 【drawio笔记】将图表导出为更高分辨率的 PNG 图像
  17. spring源码框架
  18. 多图详解:如何不停服分库分表
  19. 程序员的算法趣题Q56: 鬼脚图中的横线(思路2的Python题解)
  20. android立体3D效果_3D全息投影和平面投影有什么区别_广州全息投影

热门文章

  1. Php官方指导安装与配置
  2. Oracle基础知识-SQL简单命令
  3. 详解SaaS产品的5类核心指标
  4. 没看过这5本硬核技术书,就别说你懂大数据
  5. 码农30岁后的体检——你最需要的是直面的勇气
  6. 复旦博士用130行代码搞定核酸统计,2分钟解决人工一小时工作量
  7. InnoDB原理篇:如何用好索引
  8. 一文讲清,MySQL事务隔离级别
  9. Redis 发布订阅,小功能大用处,真没那么废材!
  10. 有趣的图说 HashMap,普通人也能看懂