JavaSE——常用API进阶二(7/8)-DateTimeFormatter、Period、Duration(常见方法、用法示例)

devtools/2024/9/24 18:59:00/

目录

DateTimeFormatter

主要方法

用法示例

Period

常见方法

用法示例

Duration

常见方法

用法示例


接下来继续要学习的是JDK 8之后新增的代替SimpleDateFormat的一个API——DateTimeFormatter

同样是用来格式化和解析时间的,与SimpleDateFormat相比较来说,它是线程安全的,也就是多个用户进入到一个系统中,用户可以使用同一个DateTimeFormatter。

DateTimeFormatter

主要方法

方法名说明
public static DateTimeFormatter ofPattern(时间格式)获取格式化器对象
public String format(时间对象)格式化时间

LocalDateTime提供的格式化、解析时间的方法

方法名说明
public String format(DateTimeFormatter formatter)格式化时间
public static LocalDateTime parse(CharSequence text, DateTimeFormatter formatter)解析时间

用法示例

java">public class Test {public static void main(String[] args){//1.创建一个日期时间格式化器对象出来DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");//2.对时间进行格式化LocalDateTime now = LocalDateTime.now();System.out.println(now);String rs = formatter.format(now);          //正向格式化System.out.println(rs);//3.格式化时间,还有另一种方案String rs2 = now.format(formatter);         //反向格式化System.out.println(rs2);//4.解析时间:解析时间一般使用LocalDateTime提供的解析方法来解析String dateStr = "2029年12月12日 12:12:11";LocalDateTime ldt = LocalDateTime.parse(dateStr,formatter);System.out.println(ldt);}
}

运行结果:

JDK 8 新增的有关时间的API还有两个补充的:Period、Duration

Period

  • 可以用于计算两个LocalDate对象相差的年数、月数、天数。

常见方法

方法名说明
public static Period between(LocalDate start, LocalDate end)传入2个日期对象,得到Period对象
public int getYears()计算隔几年,并返回
public int getMonths()计算隔几个月,年返回
public int getDays()计算隔多少天,并返回

用法示例

java">public class Test {public static void main(String[] args){LocalDate start = LocalDate.of(2029,8,10);LocalDate end = LocalDate.of(2029,12,15);//1.创建Period对象,封装两个日期对象Period period = Period.between(start,end);//2.通过Period对象获取两个日期对象相差的信息System.out.println(period.getYears());System.out.println(period.getMonths());System.out.println(period.getDays());}
}

运行结果:

Duration

  • 可以用于计算两个时间对象相差的天数、小时数、分数、秒数、纳秒数;支持LocalTime、LocalDateTime、Instant等时间。

常见方法

方法名说明
publicstaticDuration between(开始时间对象1,截止时间对象2)传入2个时间对象,得到Duration对象
public long toDays()计算隔多少天,并返回
public long toHours()计算隔多少小时,并返回
public long toMinutes()计算隔多少分,并返回
public long toSeconds()计算隔多少秒,并返回
public long toMillis()计算隔多少毫秒,并返回
public long toNanos()计算隔多少纳秒,并返回

用法示例

java">public class Test {public static void main(String[] args){LocalDateTime start = LocalDateTime.of(2025,11,11,11,10,10);LocalDateTime end = LocalDateTime.of(2025,11,11,11,11,11);//1.得到Duration对象Duration duration = Duration.between(start,end);//2.获取两个时间对象间隔的信息System.out.println(duration.toDays());              //间隔多少天System.out.println(duration.toHours());             //间隔多少小时System.out.println(duration.toMinutes());           //间隔多少分钟System.out.println(duration.toSeconds());           //间隔多少秒System.out.println(duration.toMillis());            //间隔多少毫秒System.out.println(duration.toNanos());             //间隔多少纳秒}
}

运行结果:

关于旧版与新增的时间相关API就全部学完啦~

下一篇开始学习Arrays这个工具类!


END


学习自:黑马程序员——JavaSE课程


http://www.ppmy.cn/devtools/8464.html

相关文章

深入理解指针(5)

本篇文章主要针对前面学的指针知识进行做题巩固。 下面录用了各个公司的笔试题。 指针运算笔试题解析 题目一&#xff1a; 下面代码输出结果是什么&#xff1f; #include <stdio.h> int main() {int a[5] { 1, 2, 3, 4, 5 };int* ptr (int*)(&a 1);printf(&q…

MySQL基础篇总结

参考&#xff1a;黑马程序员MySQL基础视频链接 数据库基本操作 启动与停止 1.第一种方式&#xff1a; 1>以管理员身份运行cmd 2>在命令行窗口中输入: 启动:net start mysql80停止:net stop mysql80 2.第二种方式: 1>WinR快捷方式打开如下&#xff1a; 输入&#…

计算机考研408真的很难吗?

408难&#xff01;科软有人四战没上岸&#xff0c;就是408拖的后腿&#xff01; 这位同学数二144英二81&#xff0c;真的太可惜了&#xff01; 是因为择校的问题吗&#xff1f; 看了他的备战经历后&#xff0c;我们发现&#xff0c;还真不是择校问题&#xff01; 是典型的备…

【Linux系统编程】第六弹---权限的概念

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、什么是权限 2、权限的本质 3、Linux中的用户 4、Linux中文件的权限 4.1、文件访问者的分类(角色) 4.2、文件类型和访问权…

锂电池寿命预测 | Matlab基于BiLSTM双向长短期记忆神经网络的锂电池寿命预测

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 锂电池寿命预测 | Matlab基于BiLSTM双向长短期记忆神经网络的锂电池寿命预测 程序设计 完整程序和数据获取方式&#xff1a;私信博主回复Matlab基于BiLSTM双向长短期记忆神经网络的锂电池寿命预测。 参考资料 [1] h…

Python网络爬虫项目开发实战:如何解决验证码处理

注意:本文的下载教程,与以下文章的思路有相同点,也有不同点,最终目标只是让读者从多维度去熟练掌握本知识点。 下载教程:Python网络爬虫项目开发实战_验证码处理_编程案例解析实例详解课程教程.pdf 一、验证码处理的简介 在Python网络爬虫项目开发实战中,验证码处理是…

AI重塑数字安全,安恒信息行胜于言

有人曾言&#xff1a;所有行业都值得基于人工智能技术重做一遍。 深以为然。如今&#xff0c;数字安全产业面临着一次重要的重塑机遇。以大模型为代表的人工智能技术正深刻影响着数字安全市场格局、产品研发、技术方案以及运营服务。产业界已形成共识&#xff0c;即谁能抓住人…

windows端VSCode远程免密登录Ubuntu及Root登录

VSCode远程免密登录 一、使用软件和工具二、Windows端操作生成公钥1.密钥对生成2.在C:\Users\用户名\.ssh中用记事本打开id_rsa.pub并全部复制 三、Ubuntu端记录公钥信息1.在主文件夹下(~)查看是否存在.ssh文件夹&#xff1a;2.ubuntu保存公钥信息3.本机私钥认证3.再在windows上…