JAVA JDK8时间类之Period、Duration、ChronoUnit的使用【详解】

JAVA JDK8时间类之Period、Duration、ChronoUnit的使用

  • 1. Duration
    • 1.1 简介:用于时间间隔(秒、毫秒、纳秒等)
    • 1.2 案例
  • 2. Period时间间隔(年、月、日)
    • 2.1 简介
    • 2.2 案例
  • 3. ChronoUnit
    • 3.1 简介
    • 案例
  • 4. 案例所有代码:

1. Duration

1.1 简介:用于时间间隔(秒、毫秒、纳秒等)

Duration类通过年月日时分秒相结合来描述一个时间量,最高精度是纳秒。时间量可以为正也可以为负,比如1天(86400秒0纳秒)、-1天(-86400秒0纳秒)、1年(31556952秒0纳秒)、1毫秒(0秒1000000纳秒)等。

1.2 案例

在这里插入图片描述
打印截图如下:
在这里插入图片描述

2. Period时间间隔(年、月、日)

2.1 简介

Period类通过年月日相结合来描述一个时间量,最高精度是天。时间量可以为正也可以为负,例如10年(10年0个月0天)、8个月(0年8个月0天)、34天(0年0月34天)等

2.2 案例

在这里插入图片描述
运行结果截图如下:
在这里插入图片描述

3. ChronoUnit

3.1 简介

ChronoUnit是java8提供的一个 枚举类,里面定义了很多表示日期/时间的枚举值,提供基于单元的访问来操纵日期,时间或日期时间, 通过实现TemporalUnit来扩展标准单元集。

案例

在这里插入图片描述
运行结果截图如下:
在这里插入图片描述
在这里插入图片描述

4. 案例所有代码:

public static void main(String[] args){//案例需求:获取今天到中国近代史的开端的时间差//1.获取本地现在的日期对象LocalDateTime now = LocalDateTime.now();//打印得到结果System.out.println(now);//2023-07-16T20:21:41.586513200//2.获取近代史开端的时间日期LocalDateTime modernHistoryStart =LocalDateTime.of(1840,1,1,0,00,00);//打印结果System.out.println(modernHistoryStart);//1840-01-01T00:00//利用Duration来获取相差的时间Duration duration = Duration.between(modernHistoryStart,now);System.out.println("相差的时间间隔对象:" + duration);//相差的时间间隔对象:PT1608884H21M41.5865132SSystem.out.println("------------------------------");System.out.println(duration.toDays());//获取两个时间差的天数//67036System.out.println(duration.toHours()); //两个时间差的小时数//1608884System.out.println(duration.toMinutes());//两个时间差的分钟数//96533062System.out.println(duration.toMillis()); //两个时间差的毫秒数//5791983766970System.out.println(duration.toNanos());//两个时间差的纳秒数//5791983766970625600System.out.println("------------------------------------");//需求:获取新中国成立到现在的时间间隔对象//当前本地 年月日LocalDate today = LocalDate.now();System.out.println(today);//生日的年月日LocalDate birthDate = LocalDate.of(1949,10,1);System.out.println(birthDate);Period period = Period.between(birthDate,today);//第二个参数减第一个参数System.out.println("相差的时间减隔对象:" + period);System.out.println(period.getYears());System.out.println(period.getMonths());System.out.println(period.getDays());System.out.println(period.toTotalMonths());System.out.println("---------------------------------");//需求:获取五四运动至今的时间对象,五四运动时间1919年5月4日//当前的时间LocalDateTime today1 = LocalDateTime.now();System.out.println(today);//生日时间LocalDateTime birthDate1 = LocalDateTime.of(1949,5,4,0,0,0);System.out.println(birthDate);System.out.println("相差的年数:" + ChronoUnit.YEARS.between(birthDate1,today1));System.out.println("相差的月数:" + ChronoUnit.MONTHS.between(birthDate1,today1) );System.out.println("相差的周数:" + ChronoUnit.WEEKS.between(birthDate1,today1));System.out.println("相差的天数:" + ChronoUnit.DAYS.between(birthDate1,today1));System.out.println("相差的时数:" + ChronoUnit.HOURS.between(birthDate1,today1));System.out.println("相差的分数:" + ChronoUnit.MINUTES.between(birthDate1,today1));System.out.println("相差的秒数:" + ChronoUnit.SECONDS.between(birthDate1,today1));System.out.println("相差的毫秒数:" + ChronoUnit.MILLIS.between(birthDate1,today1));System.out.println("相差的纳秒数:" + ChronoUnit.NANOS.between(birthDate1,today1));System.out.println("相差的微妙数:" + ChronoUnit.MICROS.between(birthDate1,today1));System.out.println("相差的半天数:" + ChronoUnit.HALF_DAYS.between(birthDate1,today1));System.out.println("相差的十年数:" + ChronoUnit.DECADES.between(birthDate1,today1));System.out.println("相差的世纪(百年)数:" + ChronoUnit.CENTURIES.between(birthDate1,today1));System.out.println("相差的千年数:" + ChronoUnit.MILLENNIA.between(birthDate1,today1));System.out.println("相差的纪元数:" + ChronoUnit.ERAS.between(birthDate1,today1));

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/299832.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于AT89C51单片机的8位密码锁仿真与实物制作

点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/88657969?spm1001.2014.3001.5503 源码获取 C 源码仿真图毕业设计实物制作步骤01 摘要 在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表…

Python如何使用数据库的连接池

Python 数据库连接池 python编程中可以使用pymysql进行数据库连接及增删改查操作,但每次连接mysql请求时,都是独立的去请求访问,比较浪费资源,而且访问数量达到一定数量时,对mysql的性能会产生较大的影响。因此实际使…

QT trimmed和simplified

trimmed:去除了字符串开头前和结尾后的空白; simplified:去除了字符串开头前和结尾后的空白,以及中间内部的空白字符也去掉(\t,\n,\v,\f,\r和 ) 代码: QString str " 1 2 3 4 5 …

主机安全技术措施

目录 身份鉴别 进阶 访问控制 进阶 安全审计 进阶 ​编辑 剩余信息保护 入侵防范 进阶 恶意代码防范 资源控制 身份鉴别 进阶 访问控制 进阶 安全审计 进阶 剩余信息保护 入侵防范 进阶 恶意代码防范 资源控制 ~over~

PaddleOCR 的使用,极简介绍

安装 参考github的官网就可以: github链接 简单的说,就是两句话: python3 -m pip install paddlepaddle-gpu -i https://mirror.baidu.com/pypi/simple pip install "paddleocr>2.0.1" # 推荐使用2.0.1版本 Python下的使用…

(2023|CVPR,Corgi,偏移扩散,参数高斯分布,弥合差距)用于文本到图像生成的偏移扩散

Shifted Diffusion for Text-to-image Generation 公众:EDPJ(添加 VX:CV_EDPJ 或直接进 Q 交流群:922230617 获取资料) 目录 0. 摘要 1. 简介 2. 方法 2.1 偏移扩散 3. 实验 3.1 无监督文本到图像生成 3.2 无…

交友系统设计:哪种地理空间邻近算法更快?

小熊学Java:https://javaxiaobear.cn 交友与婚恋是人们最基本的需求之一。随着互联网时代的不断发展,移动社交软件已经成为了人们生活中必不可少的一部分。然而,熟人社交并不能完全满足年轻人的社交与情感需求,于是陌生人交友平台…

嵌入式面试准备

题目都摘于网上 嵌入式系统中经常要用到无限循环,如何用C编写死循环 while(1){}或者for(;😉 内存分区 代码区,全局区(全局变量,静态变量,以及常量),栈区,堆区 const关键…

智能优化算法应用:基于沙猫群算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于沙猫群算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于沙猫群算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.沙猫群算法4.实验参数设定5.算法结果6.参考文…

STM32实战之深入理解I²C通信协议

目录 IC的物理层 IC的协议层 IC特点 IC 总线时序图 软件模拟IC时序分享 例程简介 例程分享 STM32的IC外设 IIC(Inter-Integrated Circuit),也称为IC或TWI(Two-Wire Interface),是一种广泛使用的串行…

在VSCode中使用Git教程

文章目录 提交代码操作分支提交远程库拉取代码参考 介绍一下如何在VSCode中使用Git 首先在VSCode中打开一个项目 打开项目后, 点击下图按钮, 可以引入Git 提交代码 点击 ;相当于git add. 下面两张图, 第一张表示改文件后的号, 只会add本文件. 第二张图表示这段时…

leetcode 6. N 字形变换(medium)(优质解法)

链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 代码: class Solution {public String convert(String s, int numRows) {if(numRows 1) {return s;}int lengths.length();StringBuilder retnew StringBuilder();//获取…