Java 8 (二) 新的时间API
新的时间API
一)时间线
1.Instant对象:表示时间轴上的一个点,原点为1970-1-1的午夜。
1)当前时间点:
Instant.now()
2)可以使用equals和compareTo方法来比较两个瞬时点
3)计算两个瞬时点的距离:
Instant start = Instant.now();
sleep();
Instant end = Instant.now();
Duriation time = Duriation.between(start, end);
long mills = time.toMills()
2.Duration对象:表示一段时间。
可以使用toNanos、toMills、toSeconds等得到以各种时间单位来表示的Duriation对象。
注意Instant和Duration类都是final。
二)本地日期
LocalDate对象:不含时区信息,包含年份,月份,当月天数的日期。无法对应时间轴上的时间点。
Period对象:用于计算本地日期时间段的对象。
三)日期校正器
如果要计算"每月的第三个周三"这样的日期,就可以使用日期校正器。
TemporalAdjusters对象:含有校正日期的一系列方法。
LocalDate.of(2018, 5, 18)
.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
也可以通过实现TemporalAdjuster接口来实现自己的校正器。
四)本地时间
LocalTime对象:表示一天中的某个时间
LocalDateTime对象: 表示日期和时间
五)带时区的时间
ZonedDateTime:处理带时区时间的类
ZonedId:存储时区
带时区的时间可以转换为Instant对象。
六)格式化和解析
1.格式化
DateTimeFormatter:
String format = DateTimeFormatter.ISO_DATE_TIME.
withLocale(Locale.CHINESE).format(LocalDate.now());
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("E yyyy-MM-dd HH:mm");
2.从字符串解析出日期时间:
LocalDate.parse("1990-3-26");
七)与遗留代码互操作
在Java8中java.util.Date中新增了toInstant方法和静态from方法,用来转换Date和Instant。
在java.util.GregorianCalendar类中添加了toZonedDateTime方法和静态from方法。
Java 8 (二) 新的时间API的更多相关文章
- Java 8 新日期时间 API
Java 8 新日期时间 API 1. LocalDate.LocalTime.LocalDateTime LocalDate.LocalTime.LocalDateTime 实例是不可变的对象,分别 ...
- 计算机程序的思维逻辑 (95) - Java 8的日期和时间API
本节继续探讨Java 8的新特性,主要是介绍Java 8对日期和时间API的增强,关于日期和时间,我们在之前已经介绍过两节了,32节介绍了Java 1.8以前的日期和时间API,主要的类是Date和 ...
- Java编程的逻辑 (95) - Java 8的日期和时间API
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...
- java 数据结构(三):java常用类 三 日期时间API
JDK 8之前日期时间API 1.获取系统当前时间:System类中的currentTimeMillis()long time = System.currentTimeMillis();//返回当前时 ...
- Java 9中新的货币API
译文出处: Java译站 原文出处:Michael Scharhag JSR 354定义了一套新的Java货币API,计划会在Java 9中正式引入.本文中我们将来看一下它的参考实现:JavaMo ...
- Java SE 6 新特性: 编译器 API
新 API 功能简介 JDK 6 提供了在运行时调用编译器的 API,后面我们将假设把此 API 应用在 JSP 技术中.在传统的 JSP 技术中,服务器处理 JSP 通常需要进行下面 6 个步骤: ...
- 第55节:Java当中的IO流-时间api(下)-上
Java当中的IO流(下)-上 日期和时间 日期类:java.util.Date 系统时间: long time = System.currentTimeMillis(); public class ...
- Java当中的IO流-时间api(下)-上
Java当中的IO流(下)-上 日期和时间 日期类:java.util.Date 系统时间: long time = System.currentTimeMillis(); public class ...
- JDK8中新日期时间API
它们面临的问题是:可变性:像日期和时间这样的类应该是不可变的.偏移性:Date中的年份是从1900开始的,而月份都从0开始.格式化:格式化只对Date有用,Calendar则不行.此外,它们也不是线程 ...
随机推荐
- bzoj 1812
什么鬼noip互测题... 这题很显然是树形dp,但设计状态以及转移是个难点 记状态f[i][j][k]表示以i为根节点的子树,离i最近的祖宗节点编号为j放了虫洞(伐木场?),i的子树内放了k个伐木场 ...
- 饮冰三年-人工智能-linux-03 Linux文件管理(权限管理+归档+压缩)
1:对文件的权限管理 drwxr-xr-x. 最后一个.表示在安全情况下创建的.selinux a: d表示目录:-表示普通文件:l表示快捷方式:b设备文件 b:- 属主的权限 r:读权限:w:写权限 ...
- 插件使用一树形插件---zTree
zTree是一款挺好用的树形插件,中文文档齐全,demo丰富. 官方网站是 http://www.treejs.cn/v3/main.php#_zTreeInfo 源码网站 https://githu ...
- Django实现注册页面_头像上传
Django实现注册页面_头像上传 Django实现注册页面_头像上传 1.urls.py 配置路由 from django.conf.urls import url from django.cont ...
- XML使用与总结
xml是一种比较方便的数据储存方式,它适用于小数据的存储.最常见的适用地方莫过于各种web.config与app.config了. 一.创建一个简单的xml路径 public static str ...
- kickstart-E
A题 简答模拟题 #include <iostream> #include<stdio.h> #include <set> #include <algorit ...
- bzoj4428
题解: f[i]=f[n/(j+1)向上取整]+p*j+k 然后可以通过枚举每个数的因子来做 时间复杂度nlogn(打表看了一下sigma (i因子个数) 是比较接近nlogn的) 可以有方法优化到n ...
- springboot 传List参数
最近项目有个需求,前台需要传list参数请求controller接口,一开始直接使用ResponseBody注解,但实践下来发现参数没有传到controller. 现将处理方式记录如下: 1.前台 ...
- Python学习(五) —— 文件操作
一.文件操作 1.文件操作:数据持久化的一种 步骤:找到文件,打开文件,操作:读.写.追写,关闭文件 打开文件:f = open(文件路径,操作模式,编码方式),f:文件句柄.文件 ...
- laravel 错误 1071 Specified key was too long; max key length is 1000 bytes
laravel 执行 php artisan migrate 安装数据库报 1071 Specified key was too long; max key length is 1000 bytes ...