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.5865132S


        System.out.println("------------------------------");
        System.out.println(duration.toDays());//获取两个时间差的天数//67036
        System.out.println(duration.toHours()); //两个时间差的小时数//1608884
        System.out.println(duration.toMinutes());//两个时间差的分钟数//96533062
        System.out.println(duration.toMillis()); //两个时间差的毫秒数//5791983766970
        System.out.println(duration.toNanos());//两个时间差的纳秒数//5791983766970625600


        System.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));

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

边缘计算AI智能盒子的视频源必须是固定点监控摄像头吗?

边缘计算AI盒子的视频输入源,要求是RTSP或者GB28181,可以是固定点监控摄像头(枪机、球机等),也可以是移动摄像头,例如执法记录仪、智能安全帽、布控球等,但由于RTSP输入要求摄像头有固定IP&…

中庸 原文与译文

《中庸》是中国古代论述人生修养境界的一部道德哲学专著,是儒家经典著作之一,原属《礼记》第三十一篇,相传为战国时期子思所作。 其内容肯定“中庸”是道德行为的最高标准,认为“至诚”则达到人生的最高境界,并提出“…

算法——哈希表

哈希表简介 **是什么:**存储数据的容器有什么用:快速查找某个元素,时间复杂度O(1),空间复杂度O(n)**什么时候使用哈希表:**频繁查找某一个数(这里不要忘了之前的二分,时间复杂度O(logN)&#x…

sqlilabs第三十二三十三关

Less-32(GET - Bypass custom filter adding slashes to dangerous chars) 手工注入 由 宽字符注入可知payload 成功触发报错 http://192.168.21.149/Less-32/ ?id1%df 要写字符串的话直接吧字符串变成ascii码 注意16进制的表示方式 自动注入 sqlmap -u http:…

三相电机转差率为负值的情形

1.电机开始发电的特征 注意,电机因为有输入频率对原始旋转磁场的影响,在正常工作时,应该处于稳态,因为旋转磁场决定了这个系统的运转方向和运转的大致频率区间。它会处于力矩平衡态。但是,如果,此时电机处…

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

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

《Halcon 100项目-2》Halcon查找零件个数

Halcon查找零件个数 read_image (Image20231225201927, D:/image/bilibili/photo/屏幕截图 2023-12-25 201927.png) rgb1_to_gray (Image20231225201927, GrayImage)threshold (GrayImage, Region, 0, 128) draw_rectangle1 (200000, Row1, Column1, Row2, Column2) gen_recta…

redis基本用法学习(C#调用StackExchange.Redis操作redis)

StackExchange.Redis是基于C#的高性能通用redis操作客户端,也属于常用的redis客户端之一,本文学习其基本用法。   新建Winform项目,在Nuget包管理器中搜索并安装StackExchange.Redis,如下图所示:   StackExchange.…

ElasticSearch 使用映射定义索引结构

动态映射 dynamic 可选值解释true默认值,启用动态映射,新增的字段会添加到映射中runtime查询时动态添加到映射中false禁用动态映射,忽略未知字段strict发现未知字段,抛出异常 显示映射 创建映射 PUT user {"mappings&qu…

sql_lab之sqli注入中的cookie注入

Cookei注入(gxa的从cookei注入) 1.打开控制台 2.验证id2时的值 document.cookie"id2" 3.判断是上面闭合方式 document.cookie"id2 -- s" 有回显 说明是’单引号闭合 4.用order by 判断字段数 5.用联合查询判断回显点 接下来的…

C语言 指针

C语言学习! 目录 文章目录 前言 一、指针是什么? 二、指针变量的大小 三、指针和指针类型 四、指针和函数 五、野指针 5.1野指针成因 5.2 如何规避野指针 六、指针运算 6.1 指针- 整数 6.2 指针-指针 6.3 指针的关系运算 总结 前言 指针理解的2个要点&a…

(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 无…

IDEA Maven Helper插件 解决jar冲突

Jar包冲突报错 程序抛出java.lang.ClassNotFoundException异常; 程序抛出java.lang.NoSuchMethodError异常; 程序抛出java.lang.NoClassDefFoundError异常; 程序抛出java.lang.LinkageError异常等;Maven Jar包管理机制 在Maven项…

设计模式--工厂方法模式

实验3:工厂方法模式 本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解工厂方法模式的动机,掌握该模式的结构; 2、能够利用工厂方法模式解决实际问题。 [实验任务]:加密算法 目前常用…

数据库管理-第127期 LSM Tree(202301225)

数据库管理-第127期 LSM Tree(202301225) 说起分布式数据库,绕不开的一个话题就是LSM Tree,全称为log-structured merge-tree,回到吕海波老师授权过的那句话“没搞过Oracle的,但又是数据库圈里的人&#x…

《我在北京送快递》平凡隽永的时刻,对人生更具意义

《我在北京送快递》平凡隽永的时刻,对人生更具意义 胡安焉 文章目录 《我在北京送快递》平凡隽永的时刻,对人生更具意义[toc]摘录感悟 摘录 转“没有期限的承诺无疑就是委婉的拒绝” 转书友:亨利福特说,我聘的是一双手&#xff0…

基于 FFmpeg 的跨平台视频播放器简明教程(十二):Android SurfaceView 显示图片和播放视频

系列文章目录 基于 FFmpeg 的跨平台视频播放器简明教程(一):FFMPEG Conan 环境集成基于 FFmpeg 的跨平台视频播放器简明教程(二):基础知识和解封装(demux)基于 FFmpeg 的跨平台视频…

LeetCode-回文链表(234)

题目描述: 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 因为这一题是受到876题求链表中间节点的启发,所以在这里也加一下。 876.链表的中间结点…

格密码:傅里叶矩阵

目录 一. 铺垫性介绍 1.1 傅里叶级数 1.2 傅里叶矩阵的来源 二. 格基与傅里叶矩阵 2.1 傅里叶矩阵详细解释 2.2 格基与傅里叶矩阵 写在前面:有关傅里叶变换的解释太多了,这篇博客主要总结傅里叶矩阵在格密码中的运用。对于有一定傅里叶变换基础的同…

python 解决手机拍的书籍图片发灰的问题

老师给发的作业经常是手机拍的,而不是扫描,背景发灰,如果二次打印就没有看了,象这样: 如果使用photoshop 处理,有些地方还是扣不干净,不如python 做的好,处理后如下: 具体…