博客
关于我
java日期格式化DateTimeFormatter
阅读量:782 次
发布时间:2019-03-24

本文共 1980 字,大约阅读时间需要 6 分钟。

前言

使用旧的
Date对象时,常用
SimpleDateFormat进行格式化显示。而使用新的
LocalDateTime
ZonedLocalDateTime时,格式化显示需要使用
DateTimeFormatter。与
SimpleDateFormat不同的是,
DateTimeFormatter不仅不是单一对象,还具备线程安全特性。这意味着在使用
DateTimeFormatter时,只需创建一个实例即可全局使用,而无需在方法内部频繁创建新对象。尽管如此,关于线程安全的知识点我们会在后续内容中详细探讨。

1. 年份

G:公元表示。
u
y
Y:年份表示。
y
Y的区别在于
Y用于不带年份的表示方式,而
y则表示当前年份。

2. 月份

M:当前月份的数字表示。
L:表示当前年份的第几月份。

3. 星期几

E:星期几表示(例如:星期日)。
F:表示当前月份已经过了多少个完整的星期。
W:表示当前年份已经过了多少个完整的星期。
w:表示当前年份从某一年开始已经过了多少个完整的星期。

4. 天数

D:表示已过的天数。
d:表示当前的日期。

5. 12小时计数

a:上午或下午的表示。
h:12小时制的小时数,默认逢0变为12。
K:12小时制的小时数,逢12变为0,范围是0-11。

6. 24小时计数

H:24小时制的小时数,范围是0-23。
k:24小时制的小时数,逢0变为24,范围是1-24。

7. 分钟

m:表示当前小时已经过了多少分钟。

8. 秒

s:表示当前分钟已经过了多少秒。

9. 毫秒

A:表示当前秒已经过了多少毫秒。

10. 纳秒

n:表示当前秒已经过了多少纳秒。
N:表示当前日期已经过了多少纳秒(每天过失去24小时,所以一天等于
N=24*60*60*1e9=86,400,000,000纳秒)。

示例代码测试

LocalDateTime提供了对日期时间进行操作的便捷方法,可以直接获取当前时间或指定时间的
LocalDateTime实例。以下是一些常用的示例代码:
LocalDateTime now = LocalDateTime.now();  // 获取当前执行时刻  System.out.println("当前时间:" + now);  // 时间格式化示例  System.out.println("用格式化标记输出:");  // 年份示例  System.out.println(now.format(DateTimeFormatter.ofPattern("Y")));  // 年份表示(不带年前缀)  System.out.println(now.format(DateTimeFormatter.ofPattern("y")));  // 月份示例  System.out.println(now.format(DateTimeFormatter.ofPattern("M")));  // 星期示例  System.out.println(now.format(DateTimeFormatter.ofPattern("E")));  System.out.println(now.format(DateTimeFormatter.ofPattern("a")));  // 12小时制示例  System.out.println(now.format(DateTimeFormatter.ofPattern("h")));  // 24小时制示例  System.out.println(now.format(DateTimeFormatter.ofPattern("H")));  // 分钟和秒示例  System.out.println(now.format(DateTimeFormatter.ofPattern("m")));  System.out.println("指定时间的例子:");  LocalDateTime now1 = LocalDateTime.of(2020, 1, 1, 23, 59, 59);  now1 = now1.plusSeconds(2);  System.out.println("2020-01-01 23:59:59 加2秒后变为" + now1);

通过这些代码示例,可以看出DateTimeFormatter对日期时间格式化的强大灵活性。与传统的SimpleDateFormat相比,它不仅更安全,而且支持更高级的格式化需求,如时间区支持和线程安全等。 如果需要改造旧项目中的日期时间显示逻辑,可以考虑将所有SimpleDateFormat实例替换为DateTimeFormatter,以提升代码的线程安全性和整体可维护性。

转载地址:http://iivkk.baihongyu.com/

你可能感兴趣的文章
mysql中的字段如何选择合适的数据类型呢?
查看>>
MySQL中的字符集陷阱:为何避免使用UTF-8
查看>>
mysql中的数据导入与导出
查看>>
MySQL中的时间函数
查看>>
mysql中的约束
查看>>
MySQL中的表是什么?
查看>>
mysql中穿件函数时候delimiter的用法
查看>>
Mysql中索引的分类、增删改查与存储引擎对应关系
查看>>
Mysql中索引的最左前缀原则图文剖析(全)
查看>>
MySql中给视图添加注释怎么添加_默认不支持_可以这样取巧---MySql工作笔记002
查看>>
Mysql中获取所有表名以及表名带时间字符串使用BetweenAnd筛选区间范围
查看>>
Mysql中视图的使用以及常见运算符的使用示例和优先级
查看>>
Mysql中触发器的使用示例
查看>>
Mysql中设置只允许指定ip能连接访问(可视化工具的方式)
查看>>
mysql中还有窗口函数?这是什么东西?
查看>>
mysql中间件
查看>>
MYSQL中频繁的乱码问题终极解决
查看>>
MySQL为Null会导致5个问题,个个致命!
查看>>
MySQL为什么不建议使用delete删除数据?
查看>>
MySQL主从、环境搭建、主从配制
查看>>