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

本文涉及的产品
云解析DNS,个人版 1个月
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: JavaSE——常用API进阶二(7/8)-DateTimeFormatter、Period、Duration(常见方法、用法示例)

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


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

DateTimeFormatter

主要方法

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

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

图片.png

用法示例

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对象相差的年数、月数、天数。

常见方法

图片.png

用法示例

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等时间。

常见方法

图片.png

用法示例

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



目录
相关文章
|
4天前
|
XML 前端开发 JavaScript
JavaScript进阶 - AJAX请求与Fetch API
【7月更文挑战第3天】前端开发中的异步基石:AJAX与Fetch。AJAX,使用XMLHttpRequest,处理跨域、回调地狱和错误处理。Fetch,基于Promise,简化请求,但需注意默认无跨域头和HTTP错误处理。两者各有优劣,理解其问题与解决策略,能提升前端应用的性能和用户体验。
|
1天前
|
JavaScript API
js【最佳实践】遍历数组的八种方法(含数组遍历 API 的对比)for,forEach,for of,map,filter,reduce,every,some
js【最佳实践】遍历数组的八种方法(含数组遍历 API 的对比)for,forEach,for of,map,filter,reduce,every,some
8 1
|
17天前
|
JSON 中间件 API
中间件API示例(以Express.js为例)
【6月更文挑战第14天】
21 8
|
13天前
|
存储 缓存 Java
JavaSE 字符串String及相关API StringBuilder StringJoiner 底层原理 详解
JavaSE 字符串String及相关API StringBuilder StringJoiner 底层原理 详解
17 2
|
1天前
|
安全 前端开发 API
ThinkPHP5 API模块开发规范与示例
【7月更文挑战第6天】本技术文档旨在指导开发者如何完全遵循ThinkPHP5框架的开发规范来构建RESTful API模块。ThinkPHP5(简称TP5)是一款基于PHP的轻量级MVC框架,其简洁、高效的特点非常适合快速开发Web应用及API接口。以下是创建API模块的基本步骤、最佳实践以及代码示例。
12 0
|
24天前
|
Java API
API:object当中的各种方法刨析(今日份:equals toString)
API:object当中的各种方法刨析(今日份:equals toString)
|
2天前
|
缓存 JSON 算法
http【详解】状态码,方法,接口设计 —— RestfuI API,头部 —— headers,缓存
http【详解】状态码,方法,接口设计 —— RestfuI API,头部 —— headers,缓存
4 0
|
3天前
|
API
Vue2和Vue3的区别,OptionsAPI与CompositionAPI的区别,Vue2所有的数据,都写在data和method方法中,setup是一个全新的配置项,Vue2是选项式API的写法
Vue2和Vue3的区别,OptionsAPI与CompositionAPI的区别,Vue2所有的数据,都写在data和method方法中,setup是一个全新的配置项,Vue2是选项式API的写法
|
1月前
|
存储 Java API
JavaSE——常用API进阶二(8/8)-Arrays、Comparable、Comparator(Arrays类提供的的常见方法、用法示例)
JavaSE——常用API进阶二(8/8)-Arrays、Comparable、Comparator(Arrays类提供的的常见方法、用法示例)
23 2
|
3天前
|
NoSQL 安全 API
如何有效提升 API 接口的安全性?
**API安全关键在于验证和防刷。通过排序参数、生成签名和MD5加密确保请求合法性。使用Redis限制请求频率,防止接口被恶意刷取。验证和防刷策略结合,保护API免受攻击和滥用。**
14 0