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

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 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



目录
相关文章
|
11天前
|
安全 前端开发 API
ThinkPHP5 API模块开发规范与示例
【7月更文挑战第6天】本技术文档旨在指导开发者如何完全遵循ThinkPHP5框架的开发规范来构建RESTful API模块。ThinkPHP5(简称TP5)是一款基于PHP的轻量级MVC框架,其简洁、高效的特点非常适合快速开发Web应用及API接口。以下是创建API模块的基本步骤、最佳实践以及代码示例。
28 0
|
14天前
|
XML 前端开发 JavaScript
JavaScript进阶 - AJAX请求与Fetch API
【7月更文挑战第3天】前端开发中的异步基石:AJAX与Fetch。AJAX,使用XMLHttpRequest,处理跨域、回调地狱和错误处理。Fetch,基于Promise,简化请求,但需注意默认无跨域头和HTTP错误处理。两者各有优劣,理解其问题与解决策略,能提升前端应用的性能和用户体验。
|
11天前
|
JavaScript API
js【最佳实践】遍历数组的八种方法(含数组遍历 API 的对比)for,forEach,for of,map,filter,reduce,every,some
js【最佳实践】遍历数组的八种方法(含数组遍历 API 的对比)for,forEach,for of,map,filter,reduce,every,some
24 1
|
2天前
|
JSON 人工智能 API
App Inventor 2 人脸识别App开发 - 第三方API接入的通用方法
**App 效果图**:展示人脸识别功能,可识别性别和年龄。 **工作原理**:调用第三方人脸识别API,上传图片并接收返回的JSON数据,AppInventor2解析结果显示。
14 0
|
8天前
|
XML 前端开发 JavaScript
JavaScript进阶 - AJAX请求与Fetch API
【7月更文挑战第9天】JavaScript进阶:AJAX与Fetch API对比。AJAX用于异步数据交换,XMLHttpRequest API复杂,依赖回调。Fetch API是现代、基于Promise的解决方案,简化请求处理。示例:`fetch('url').then(r => r.json()).then(data => console.log(data)).catch(err => console.error(err))`。注意点包括检查HTTP状态、错误处理、CORS、Cookie和超时。Fetch提高了异步代码的可读性,但需留意潜在问题。
|
9天前
|
存储 监控 API
解锁京东 APP 商品详情的 API 接口获取方法
在数字化商业环境中,获取京东APP商品详情的API接口至关重要。这有助于电商数据分析、价格监控、商品推荐等。API接口提供高效、稳定且合规的数据源,允许快速获取大量商品信息。要使用接口,需注册开发者账号、了解接口文档并进行开发调试。示例代码展示了Python如何调用接口。同时,注意遵守规则、处理数据安全及接口更新。利用API能提升业务效率,但需在合法合规下进行。
|
12天前
|
缓存 JSON 算法
http【详解】状态码,方法,接口设计 —— RestfuI API,头部 —— headers,缓存
http【详解】状态码,方法,接口设计 —— RestfuI API,头部 —— headers,缓存
17 0
|
13天前
|
API
Vue2和Vue3的区别,OptionsAPI与CompositionAPI的区别,Vue2所有的数据,都写在data和method方法中,setup是一个全新的配置项,Vue2是选项式API的写法
Vue2和Vue3的区别,OptionsAPI与CompositionAPI的区别,Vue2所有的数据,都写在data和method方法中,setup是一个全新的配置项,Vue2是选项式API的写法
|
13天前
|
NoSQL 安全 API
如何有效提升 API 接口的安全性?
**API安全关键在于验证和防刷。通过排序参数、生成签名和MD5加密确保请求合法性。使用Redis限制请求频率,防止接口被恶意刷取。验证和防刷策略结合,保护API免受攻击和滥用。**
33 0
|
18天前
|
JSON 安全 API
如何高效编写API接口:以Python与Flask为例
构建RESTful API的简明教程:使用Python的Flask框架,从环境准备(安装Python,设置虚拟环境,安装Flask)到编写首个API(包括获取用户列表和单个用户信息的路由)。运行API服务器并测试在`http://127.0.0.1:5000/users`。进阶话题包括安全、数据库集成、API文档生成和性能优化。【6月更文挑战第27天】
43 7