JDK中日期和时间的几个常用类浅析(四)
java.time.Instant
java.time.Instant类对应的是时间线上的一个时间点。该类通过保存着从格林威治的起始时间(1970年一月一日零点零分)开始计算所经过的纳妙数来表示时间点。注意:该类是JDK8中新引入的一系列日期时间相关API中的最基础类。如果需要创建该类的一个实例,需要使用该类的工厂方法,示例如下:
Instant now = Instant.now();
一个Instant实例中包含有两个域,分别代表着秒数和纳秒数。
+ EpochSecond 可正可负,相对于格林威治的起始时间 + Nano 只能为正,少于1秒的纳秒值。Instant类本身提供了很多方法用于算法计算,其中的一些如下:
+ plusSeconds()
+ plusMillis()
+ plusNanos()
+ minusSeconds()
+ minusMillis()
+ minusNanos()
java.time.Duration
java.time.Duration类用于代表两个Instant对象之间的一段时间。该类同样是JDK8中新引入的。Duration类是不可变类,意味着一个该类的对象一旦生成,该对象就是不可变的。如果需要创建Duration类的对象,直接使用该类的工厂方法就可以了,示例代码如下:
Instant first = Instant.now();
Instant second = Instant.now();
Duration d = Duration.between(first, second);
类似地,一个Duration对象中同样是含有两个域,用来表示一段时间。如果需要访问这两个域变量,可以使用如下的方法:
getNano();
getSecond();
同时,该类中还提供了方法用于把该对象所代表的一段时间转化成其他单位表示形式。简单举例如下:
toNanos();
toMillis();
toMinutes();
toHours();
toDays();
此处注意一下get方法与to方法的区别:比如,getNano方法返回的是Duration对象中纳秒部分的值,而toNano方法是把Duration对象整个时间值转换成纳秒值。 正如你所期待的那样,Duration类中含有大量的算术操作方法,可以用来生成新的Duration对象。简单举例如下:
plusNanos();
plusMillis();
minusSeconds();
minusDays();
所有的这些算术操作方法都会返回一个新的Duration对象,这样才保证了Duration类是一个不可变类。
java.time.LocalDate
java.time.LocalDate类同样是在JDK8中新引入的日期时间类。该类用来表示不含时区信息的日期,比如用来表示生日,节日等具体某天,但并不表示该天的具体时间。注意:LocalDate类同样是一个不可变类。如果需要创建该类的对象,可以直接使用该类的工厂方法,示例代码如下:
LocalDate localDate = LocalDate.now();
LocalDate localDate2 = LocalDate.of(2017, 12, 31);
类似的,该类同样包含有相应地域访问和域设置的方法,简单举例如下:
int year = localDate.getYear();
int dayOfMonth = localDate.getDayOfMonth();
LocalDate localDate1 = localDate.plusYears(3);
java.time.LocalTime
java.time.LocalTime类同样是在JDK8中新引入的日期时间类。该类用来表示不含时区信息的时间,比如用来表示上午10点,下午5点等。 注意:LocalTime类同样是一个不可变类。如果需要创建该类的对象,可以直接使用该类的工厂方法,示例代码如下:
LocalTime localTime = LocalTime.now();
LocalTime localTime2 = LocalTime.of(21, 30, 59, 11001);
类似地,该类同样包含有相应地域访问和域设置的方法,简单举例如下:
LocalTime localTime = LocalTime.now();
localTime.plusHours(3);
我们可以发现,LocalDate和LocalTime是非常相似的,他们分别用来表示不含时区信息的日期和时间。
本系列文档会在本人的微信公众号发布,欢迎大家扫码关注。

JDK中日期和时间的几个常用类浅析(四)的更多相关文章
- JDK中日期和时间的几个常用类浅析(二)
java.util.Calendar JDK中的java.util.Calendar类主要是用来处理日期和时间相关的算法运算.当你需要做一些关于日期和时间的高级算数操作时,此类可能就是你的最好选择 ...
- JDK中日期和时间的几个常用类浅析(五)
LocalDateTime LocalDateTime是JDK8中才引入的类,用来表示不包含时区信息的本地日期和时间.我们可以把LocalDateTime看作是LocalDate和LocalTim ...
- JDK中日期和时间的几个常用类浅析(三)
java.text.SimpleDateFormat SimpleDateFormat类是用于把字符串解析成日期时间和把日期时间格式化成字符串的工具类.该类主要和java.util.Date类配合 ...
- Python中日期和时间格式化输出的方法
本文转自:https://www.jb51.net/article/62518.htm 本文实例总结了python中日期和时间格式化输出的方法.分享给大家供大家参考.具体分析如下: python格式化 ...
- 5 个关于 API 中日期和时间设计规则
规则 #1 使用ISO-8601格式作为你的日期格式 ISO 8601 解决了很多问题,包括: 自然排序 - 简单和优雅,免去多余的工作即可实现排序 时区偏移 - 代表用户的地点和时区在日益增长的全球 ...
- PHPExcel对于Excel中日期和时间类型的处理
PHPExcel是一款优秀的处理Excel文件读写的开源PHP Library,能够给我们提供强大的Excel读写能力,本文针对Excel处理过程中关于日期和时间类型的处理进行深入的讨论.PHPExc ...
- SqlServer中日期和时间数据类型及函数 【转】
来源:http://blog.csdn.net/royalwzy/article/details/6446075 日期和时间数据类型 下表列出了 Transact-SQL 的日期和时间数据类型. 数据 ...
- JAVA中日期和时间的格式化选项
一.使用printf方法 import java.util.Date; import java.util.Scanner; public class Test { public static void ...
- Oracle中日期和时间类函数
首先,在oracle中如何表示日期 操作日期时,应使用to_date('date','dateType')函数得到date类型,其中date为任意格式的日期,dateType指定其格式,如to_dat ...
随机推荐
- 用jdk在cmd下运行编译java程序
1.首先通过创建一个txt文档,将java代码写入txt文档中保存 2.将保存好的HelloWorld.txt文档重命名为HelloWorld.java文件. 3.打开windows中的"命 ...
- 读书笔记 effective c++ Item 12 拷贝对象的所有部分
1.默认构造函数介绍 在设计良好的面向对象系统中,会将对象的内部进行封装,只有两个函数可以拷贝对象:这两个函数分别叫做拷贝构造函数和拷贝赋值运算符.我们把这两个函数统一叫做拷贝函数.从Item5中,我 ...
- js加密
在项目中,经常需要使用加密来保障数据的安全性,虽然可以通过在后台加密再传给前台,但这样无疑会增加后台的服务器的压力.所以在js中使用加密算法也就应运而生了. 一.base64加密 需要引入base64 ...
- R语言从小木虫网页批量提取考研调剂信息
一.从URL读取并返回html树 1.1 Rcurl包 使用Rcurl包可以方便的向服务器发出请求,捕获URI,get 和 post 表单.比R socktet连接要提供更高水 ...
- 极光推送-Java后台实现方式一:Http API
Java后台实现极光推送有两种方式,一种是使用极光推送官方提供的推送请求API:https://api.jpush.cn/v3/push,另一种则是使用官方提供的第三方Java APIjar包,这里先 ...
- Tomcat8 + Redis实现session集中管理
环境准备: 部署两台 tomcat 8.0 安装 redis 服务器 下载工具库( commons-pool2-2.3.jar.jedis-2.7.2.jar .改良版的 tomcat ...
- 基于Blod的ajax进度条下载实现
普通的浏览器下载 在web开发中,如果要实现下载功能,往往都是使用新开web页面或者是使用iframe的形式.实现起来其实很简单: <a target="_blank" hr ...
- [故障公告] 13:52-14:03,访问量突增,博客web服务器CPU 100%
13:52-14:03,由于访问量突增,博客web服务器全线CPU 100%,造成博客站点不正常访问,由此给您带来麻烦,请您谅解. 为了迎接访问量的增长给web服务器CPU带来的巨大压力,上周我们已经 ...
- Tesseract pytesseract的安装和使用
Tesseract是开源的OCR引擎,可以识别的图片里的文字,支持unicode(UTF-8)编码,100多种语言,需要下载相应语言的训练数据. 安装: 有两种方法,一种是通过编译源码,比较麻烦.我使 ...
- markdown中常见的转义字符
markdown中的转义字符 字符 转义后字符 & & " " > > < < 不断空格 \ \\ ` \` * \* _ \_ {} ...