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方法。
Java 8的Time包常用API的更多相关文章
- Java基础第四天--常用API
常用API 基本类型包装类概述 将基本数据类型封装成对象的好处可以在对象中定义更多的功能方法操作该数据 常用的操作之一:用于基本数据类型与字符串之间的转换 基本数据类型 包装类 byte Byte s ...
- java基础(6)常用API
1 Object类 `java.lang.Object`类是Java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类就是Object. 如果一个类没有特 ...
- Java基础学习笔记十三 常用API之正则表达式、Date、DateFormat、Calendar
正则表达式 正则表达式(英语:Regular Expression,在代码中常简写为regex).正则表达式是一个字符串,使用单个字符串来描述.用来定义匹配规则,匹配一系列符合某个句法规则的字符串.在 ...
- JAVA (StringBuffer/StringBuilder)常用API
public class Copy3 { public static void main(String[] args) { //构造实例化 StringBuffer strbu = new Strin ...
- java基础3.0:Java常用API
本篇介绍Java基础中常用API使用,当然只是简单介绍,围绕重要知识点引入,巩固开发知识,深入了解每个API的使用,查看JavaAPI文档是必不可少的. 一.java.lang包下的API Java常 ...
- Java map 详解 - 用法、遍历、排序、常用API等
尊重原创: http://www.cnblogs.com/lzq198754/p/5780165.html 概要: java.util 中的集合类包含 Java 中某些最常用的类.最常用的集合类是 L ...
- java常用API的总结(1)
本篇是对于这一段时间以来接触到的常用api的一些总结,便于以后的查阅.... 一.正则表达式 对于正则表达式,我的感觉就是当我们在做某些题的时候正则表达式会省去我们很多的时间,并且正则表达式的使用格式 ...
- Java 之常用API(一)
常用API 1 API概述 2 Scanner类与String类 3 StringBuilder类 NO.one API概述 1.1 API概述 API(Application Programm ...
- java:Hibernate框架1(环境搭建,Hibernate.cfg.xml中属性含义,Hibernate常用API对象,HibernteUitl,对象生命周期图,数据对象的三种状态,增删查改)
1.环境搭建: 三个准备+7个步骤 准备1:新建项目并添加hibernate依赖的jar文件 准备2:在classpath下(src目录下)新建hibernate的配置文件:hibernate.cf ...
随机推荐
- 发布后的项目打开swagger
使用netcore作为纯后端提供api已经变得越来越频繁,swagger也成为很多人的选择.通常会在代码中限制ASPNETCORE_ENVIRONMENT为Production时关闭swagger.但 ...
- C#数字日期转成中文日期
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...
- 【转载】IIS一个网站如何绑定多个主机域名
在IIS Web服务器的网站配置的过程中,有时候需要一个网站配置对应多个域名记录,例如不带www的主域名以及带www的域名解析记录对应同一个网站文件,此时最简单的配置方法就是将一个网站绑定多个主机域名 ...
- 使用angularJS设置复选框的回显状态
思路分析: 在angularJS中,我们可以使用ng-checked="expression()"来设置复选框的状态:当expression()返回true时,该复选框为选择中状态 ...
- Jerry带您了解Restful ABAP Programming模型系列之三:云端ABAP应用调试
Jerry的Restful ABAP Programming模型介绍系列的前两篇文章: 30分钟用Restful ABAP Programming模型开发一个支持增删改查的Fiori应用 Jerry带 ...
- USB原理简单叙述
USB简介: USB的几种版本: 1. USB 1.0:速度 1.5Mb/s 2. USB 1.1:速度 12Mb/s 3. USB 2.0:速度 60MbB/s 4. USB 3.0:速度 640M ...
- Java中异常关键字throw和throws使用方式的理解
Java中应用程序在非正常的情况下停止运行主要包含两种方式: Error 和 Exception ,像我们熟知的 OutOfMemoryError 和 IndexOutOfBoundsExceptio ...
- Mysql 中的SSL 连接
Mysql 中的SSL 连接 以下来自网络参考和自己测试整理,没有查找相关资料.若有错误之处,欢迎指正. 当前的Mysql 客户端版本基本都不太能支持 caching_sha2_password 认证 ...
- Linux命令——getent
简介 getent命令帮助用户administrative databases中查找相关信息.administrative databases包括: passwd – can be used to c ...
- MyBatis3_[tp-26-27]_映射文件_select_返回List_记录封装Map:返回单个元素的Map或者整体Map集合
笔记要点出错分析与总结工程组织 1.定义接口 public interface EmployeeMapper { //多条记录封装到一个map中: Map<Integer,Employee> ...