【java8的特性-4】日期时间!

2023-11-12

一、获取当前时间

Java 8提供了三个主要的类来处理日期和时间:LocalDate、LocalTime和LocalDateTime。以下是这些类的简要说明:

  • LocalDate: 代表一个日期,它包含了年、月、日等信息,但没有时间信息。

  • LocalTime: 代表一个时间,它包含了小时、分钟、秒等信息,但没有日期信息。

  • LocalDateTime: 代表一个日期时间,它包含了年、月、日、小时、分钟、秒等信息。

//获取当前日期和时间
		LocalDate date=LocalDate.now();
		LocalTime time=LocalTime.now();
		LocalDateTime dateTime=LocalDateTime.now();
			
		System.out.println(String.format("当前日期:%s", date));
		System.out.println(String.format("当前时间:%s", time));
		System.out.println(String.format("当前日期时间:%s",dateTime));

输出结果:

 二、类型转换

        //类型转换
		//字符串=>localdate
		String strDate="2023-10-01";
		date=LocalDate.parse(strDate);
		System.out.println(String.format("指定日期:%s", date));

        //整数值=>localdate
		date=LocalDate.of(2022, 5, 1);
		System.out.println(String.format("指定日期:%s", date));

 输出结果:

 三、日期计算

        LocalDate now=LocalDate.now();  //获取当前时间
		//十天后
		System.out.println("十天后是:"+now.plus(10, ChronoUnit.DAYS));

		//十天前
		System.out.println("十天前是:"+now.plus(-10, ChronoUnit.DAYS));
		

四、计算时间间隔

Duration类可以用来处理一段时间间隔,例如两个时间点之间的时间差。 

Duration duration = Duration.between(LocalTime.of(4, 20, 10), LocalTime.now()); // 计算两个日期时间对象之间的时间间隔
		long days1 = duration.toDays(); // 获取天数
		long hours = duration.toHours(); // 获取小时数
		long minutes = duration.toMinutes(); // 获取分钟数
		System.out.println(days1);
		System.out.println(hours);
		System.out.println(minutes);

输出结果:

 

Period类则可以用来处理一段时间段,例如两个日期之间的时间差。

        LocalDate date1=LocalDate.parse("2023-10-01");
		LocalDate date2=LocalDate.parse("2021-05-20");
		
        //方式一
		Period result=Period.between(date1, date2);
		System.out.printf("间隔%d年%d月%d天",result.getYears(),result.getMonths(),result.getDays());
       
        //方式二
        long days=date1.toEpochDay()-date2.toEpochDay();
		System.out.println(days);
		

输出结果:

 

五、获取指定日期

        LocalDate today=LocalDate.now();
		
		LocalDate firstDayOfMonth=today.with(TemporalAdjusters.firstDayOfMonth());
		System.out.println("当前月的第一天:"+firstDayOfMonth);
		
		LocalDate lastDayOfMonth=today.with(TemporalAdjusters.lastDayOfMonth());
		System.out.println("当前月的最后一天:"+lastDayOfMonth);
		
		LocalDate firstDayOfnextMonth=today.with(TemporalAdjusters.lastDayOfMonth()).plus(1,ChronoUnit.DAYS);
		System.out.println("下个月的第一天:"+firstDayOfnextMonth);
		
		LocalDate lastWeekOfMonth=today.with(TemporalAdjusters.lastInMonth(DayOfWeek.MONDAY));
		System.out.println("本月的最后一个星期一:"+lastWeekOfMonth);
		

 输出结果:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【java8的特性-4】日期时间! 的相关文章

随机推荐

  • 求阶乘之和(循环版)(利用阶乘函数)

    请编写函数 用循环方法求阶乘之和 SumFac n 0 1 2 3 n include
  • uniapp uview 登录页

  • DETRs Beat YOLOs on Real-time Object Detection论文详解

    论文题目 DETRs Beat YOLOs on Real time Object Detection 论文地址 https arxiv org abs 2304 08069 论文代码 mirrors facebookresearch Co
  • jmeter:linux环境运行jmeter并生成报告

    是一个java开发的利用多线程原理来模拟并发进行性能测试的工具 一般来说 GUI模式只用于创建脚本以及用来debug 执行测试时建议使用非GUI模式运行 这篇博客 介绍下在linux环境利用jmeter进行性能测试的方法 以及如何生成测试报
  • matplotlib绘图与可视化2

    文章目录 前言 一 使用pandas和seaborn绘图 1 1 折线图 1 2 柱状图 1 3 直方图和密度图 1 4 散点图或点图 1 5 分面网格和分类数据 总结 前言 matplotlib是一个相当底层的工具 你可以从其基本组件中组
  • java ioc依赖注入,Spring bean的实例化和IOC依赖注入详解

    前言 我们知道 IOC是Spring的核心 它来负责控制对象的生命周期和对象间的关系 举个例子 我们如何来找对象的呢 常见的情况是 在路上要到处去看哪个MM既漂亮身材又好 符合我们的口味 就打听她们的电话号码 制造关联想办法认识她们 然后
  • 【带头结点的单链表】

    带头结点的单链表 前言 一 带头结点的单链表结构体设计 1 带头结点的单链表 2 结构体声明 二 函数实现 1 初始化 2 申请新节点 3 头插 4 尾插 5 按位置插入 6 头删 7 尾删 8 销毁 总结 前言 单链表的概念 单链表是一种
  • CS162 操作系统HW2(使用Liunx内核链表以及多线程实现WordCounter)

    心得体会 IDE自动提示补全真的特别重要 大大提高开发效率 通过IDE自动搜索库函数API GDB调试能力要加强 使用前面提供的list h来改写wordCount程序 头文件的实现相当有技巧 将使用外部list库 多线程都用宏定义到同一份
  • Could not load dynamic library ‘libcupti.so.10.0‘; dlerror: libcupti.so.10.0...

    环境 Ubuntu 16 04 CUDA 10 0 CUDNN 7 6 5 nvcc NVIDIA R Cuda compiler driver Copyright c 2005 2018 NVIDIA Corporation Built
  • ESP32 /ESP8266在VS Code and PlatformIO上传文件系统 (SPIFFS)

    ESP32 ESP8266在VS Code and PlatformIO上传文件系统 SPIFFS 学习如何上传文件到ESP32板文件系统 SPIFFS 使用VS Code与PlatformIO IDE扩展 快速和简单 使用ESP32的文件
  • 【计算机毕业设计】课堂考勤微信小程序 基于微信小程序的课堂考勤管理系统

    毕设帮助 源码交流 技术解答 见文末 一 前言 在目前国内的高校课堂考勤中 传统的到场点名方式耗费了教师大量的时间和精力 随着课堂人数的增加 学生群体呈现多样性 这种点名考勤方式将不再适合日常使用 而且传统的点名考勤无法避免代人答到现象 极
  • 包装类这颗语法糖,其实并不甜

    历史文章推荐 你真的了解时间吗 细数ThreadLocal三大坑 内存泄露仅是小儿科 Java 8 ConcurrentHashMap源码中竟然隐藏着两个BUG ConcurrentHashMap中有十个提升性能的细节 你都知道吗 Hash
  • 2023年及以后语言、视觉和生成模型的发展和展望

    一 简述 在过去的十年里 研究人员都在追求类似的愿景 帮助人们更好地了解周围的世界 并帮助人们更好地了解周围的世界 把事情做完 我们希望建造功能更强大的机器 与人们合作完成各种各样的任务 各种任务 复杂的信息搜寻任务 创造性任务 例如创作音
  • 如何在jieba分词中加自定义词典_R-数据挖掘

    一 jiebaR主要函数 1 worker 加载jiebaR库的分词引擎 worker type mix dict DICTPATH hmm HMMPATH user USERPATH idf IDFPATH stop word STOPP
  • 少儿编程竞赛概览

    少儿编程竞赛概览 全国性竞赛活动名单的确定 最终确定的 29 项中的信息类竞赛 学编程的孩子可以报哪些比赛 CSP J S 计算机非专业组别能力认证 全国中小学生创 造大赛 蓝桥杯青少年创意编程比赛 全国青少年编程创意与智能设计大赛 全国中
  • Ubuntu系统操作指令详解

    Ubuntu系统操作指令详解 解压文件指令 vim使用指令 1 进入编辑模式 2 退出编辑模式 ls alh显示出来内容的意思 创建文件夹 创建文件 删除当前文件夹下所有文件 ubuntu删除命令记录的方法 Ubuntu中复制文件出现权限不
  • 从malloc中窥探Linux内存分配策略

    malloc函数是C C 中常用内存分配库函数 本篇文章将以Linux平台上的malloc为剖析对象 深入了解分配一块内存的旅程 malloc入门 使用malloc 需要包含头文件 stdlib h 函数原型如下 extern void m
  • utf8和utf8mb4的区别

    一 简介 MySQL在5 5 3之后增加了这个utf8mb4的编码 mb4就是most bytes 4的意思 专门用来兼容四字节的unicode 好在utf8mb4是utf8的超集 除了将编码改为utf8mb4外不需要做其他转换 当然 为了
  • c#之string和stringBuilder

    C String与StringBuilder 转载 1 什么时候用String 什么时候用StringBuilder 字符串一旦创建就不可修改大小 所以对字符串添加或删除操作比较频繁的话 那就不要用String而用StringBuilder
  • 【java8的特性-4】日期时间!

    一 获取当前时间 Java 8提供了三个主要的类来处理日期和时间 LocalDate LocalTime和LocalDateTime 以下是这些类的简要说明 LocalDate 代表一个日期 它包含了年 月 日等信息 但没有时间信息 Loc