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方法。

Java 8的Time包常用API的更多相关文章

  1. Java基础第四天--常用API

    常用API 基本类型包装类概述 将基本数据类型封装成对象的好处可以在对象中定义更多的功能方法操作该数据 常用的操作之一:用于基本数据类型与字符串之间的转换 基本数据类型 包装类 byte Byte s ...

  2. java基础(6)常用API

    1 Object类 `java.lang.Object`类是Java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类就是Object. 如果一个类没有特 ...

  3. Java基础学习笔记十三 常用API之正则表达式、Date、DateFormat、Calendar

    正则表达式 正则表达式(英语:Regular Expression,在代码中常简写为regex).正则表达式是一个字符串,使用单个字符串来描述.用来定义匹配规则,匹配一系列符合某个句法规则的字符串.在 ...

  4. JAVA (StringBuffer/StringBuilder)常用API

    public class Copy3 { public static void main(String[] args) { //构造实例化 StringBuffer strbu = new Strin ...

  5. java基础3.0:Java常用API

    本篇介绍Java基础中常用API使用,当然只是简单介绍,围绕重要知识点引入,巩固开发知识,深入了解每个API的使用,查看JavaAPI文档是必不可少的. 一.java.lang包下的API Java常 ...

  6. Java map 详解 - 用法、遍历、排序、常用API等

    尊重原创: http://www.cnblogs.com/lzq198754/p/5780165.html 概要: java.util 中的集合类包含 Java 中某些最常用的类.最常用的集合类是 L ...

  7. java常用API的总结(1)

    本篇是对于这一段时间以来接触到的常用api的一些总结,便于以后的查阅.... 一.正则表达式 对于正则表达式,我的感觉就是当我们在做某些题的时候正则表达式会省去我们很多的时间,并且正则表达式的使用格式 ...

  8. Java 之常用API(一)

    常用API  1 API概述  2 Scanner类与String类  3 StringBuilder类 NO.one API概述 1.1 API概述 API(Application Programm ...

  9. java:Hibernate框架1(环境搭建,Hibernate.cfg.xml中属性含义,Hibernate常用API对象,HibernteUitl,对象生命周期图,数据对象的三种状态,增删查改)

    1.环境搭建: 三个准备+7个步骤 准备1:新建项目并添加hibernate依赖的jar文件  准备2:在classpath下(src目录下)新建hibernate的配置文件:hibernate.cf ...

随机推荐

  1. puppet工作原理之模块使用

    一.模块介绍 1.什么是模块 通常情况把manifest文件分解成易于理解得结构,例如类文件,配置文件分类存放,并通过某种机制整合使用,这种机制就是模块,有助于结构化.层次化的方式使用puppet,p ...

  2. 编写Postgres扩展之二:类型和运算符

    原文:http://big-elephants.com/2015-10/writing-postgres-extensions-part-ii/ 编译:Tacey Wong 在上一篇关于编写Postg ...

  3. Python Web 程序使用 uWSGI 部署

    Python Web 程序使用 uWSGI 部署 WSGI是什么? WSGI,全称 Web Server Gateway Interface,或者 Python Web Server Gateway ...

  4. Django学习笔记(二)App创建之Model

    通过实例学习, 构建一个投票(Polls)Application, 目标结果包含两个site, 一个site用来显示投票问题以及投票结果(即将展示出来的网站), 另一个site用来管理Poll实例的增 ...

  5. 关于 table 那些事儿

    一.  table thead/tbody/tfoot 组合写法: table: 表格: thead: 表头: tbody: 标签表格主体(正文): tr:行: th:表头单元格 td:单元格: tb ...

  6. CoAP协议

    CoAP(Constrained Application Protocol) CoAP是6LowPAN协议栈中的应用层协议 CoAP是超轻量型协议 CoAP的默认UDP端口号为5683 1. 四种消息 ...

  7. @Transactional 同一个类中无事务方法a()内部调用有事务方法b()的问题

    https://blog.csdn.net/u010235716/article/details/90171802 1. 事务的4种特性       序号 参数 含义1 原子性(Atomicity) ...

  8. python程序打包exe

    http://c.biancheng.net/view/2690.html 用inno setup做成安装包(官网上下载) http://www.jrsoftware.org/isdl.php

  9. thefuck安装和使用(ubuntu)

    系统环境(已测试可用): ubuntu 18.04 lts (server或desktop),ubuntu 19.04(server或desktop) sudo apt update sudo apt ...

  10. nginx日志配置笔记:if条件

    1.特定条件写日志: 参照: https://stackoverflow.com/questions/19011719/how-to-write-only-logs-with-200-status h ...