Java中DateTimeFormatter的使用方法和案例

这篇具有很好参考价值的文章主要介绍了Java中DateTimeFormatter的使用方法和案例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🔔简介

在Java中,DateTimeFormatter类用于格式化和解析日期时间对象。它是日期时间格式化的强大而灵活的工具。

🔔作用

🌵1.本地化时间

本地化时间指根据指定的语言环境显示时间

Java中DateTimeFormatter的使用方法和案例,java,java,开发语言

1.1.创建DateTimeFormatter时指定Locale

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.CHINA);

1.2.使用该DateTimeFormatter格式化日期时间

LocalDate date = LocalDate.now();
String cnDate = date.format(formatter); 
这样就可以得到适合中国需求的日期格式"2021-10-01"。

1.3.可以通过Locale.US、Locale.UK等地区,从而得到不同格式

DateTimeFormatter usFormatter = DateTimeFormatter.ofPattern("MM/dd/yyyy", Locale.US);
DateTimeFormatter ukFormatter = DateTimeFormatter.ofPattern("dd/MM/yyyy", Locale.UK);
LocalDate date = LocalDate.now();
String usDate = date.format(usFormatter); // 10/01/2021
String ukDate = date.format(ukFormatter); // 01/10/2021

1.4.使用预定义的格式化常量指定地区

LocalDate date = LocalDate.now();
String cnDate = date.format(FormatStyle.LONG, Locale.CHINA); 
String frDate = date.format(FormatStyle.FULL, Locale.FRANCE);
🌵2.ISO/RFC规范格式

ISO和RFC定义了标准的日期时间格式,可以直接使用:

LocalDate date = LocalDate.now();

// ISO格式
String isoDate = date.format(ISO_LOCAL_DATE); 

// RFC格式 
String rfcDate = date.format(RFC_1123_DATE_TIME);
格式名称 描述 格式 示例
BASIC_ISO_DATE 基本ISO日期 yyyyMMdd 20111203
ISO_LOCAL_DATE ISO本地化日期 yyyy-MM-dd 2011-12-03
ISO_OFFSET_DATE 带偏移时区的ISO日期 yyyy-MM-ddXX 2011-12-03+01:00
ISO_DATE ISO 日期,可能带偏移量 yyyy-MM-dd 或者 yyyy-MM-ddXX 2011-12-03+01:00’;2011-12-03
ISO_LOCAL_TIME ISO本地化时间 HH:mm:ss 10:15:30
ISO_OFFSET_TIME 带偏移时区的ISO时间 HH:mm:ssXX 10:15:30+01:00
ISO_TIME ISO时间,可能带偏移量 HH:mm:ss 或者 HH:mm:ssXX 10:15:30+01:00;10:15:30
ISO_LOCAL_DATE_TIME ISO本地日期和时间 yyyy-MM-dd’T’HH:mm:ss 2011-12-03T10:15:30
ISO_OFFSET_DATE_TIME 带偏移时区的ISO日期 yyyy-MM-dd’T’HH:mm:ssXX 2011-12-03T10:15:30+01:00
ISO_ZONED_DATE_TIME 带时区的ISO日期和时间 yyyy-MM-dd’T’HH:mm:ssZZZZ 2011-12-03T10:15:30+01:00
ISO_DATE_TIME 带Zoneld的ISO日期和时间 yyyy-MM-dd’T’HH:mm:ssxxx 2011-12-03T10:15:30+01:00
ISO_ORDINAL_DATE 年份和一年的第N天 yyyy-DDD 2012-337
ISO_WEEK_DATE 年份-第N周-周N xxxx-'W’ww-e 2012-W48-6
ISO_INSTANT ISO时刻 2011-12-03T10:15:30Z
RFC_1123_DATE_TIME RFC 1123/RFC 822 Tue, 3 Jun 2008 11:05:30 GMT
🌵3.范式格式化

常见格式化:

年份:

  • YYYY:4位数字表示的年份,例如:2023
  • yyyy:4位数字表示的年份,例如:2023
  • YY:2位数字表示的年份,例如:23

月份:

  • MM:2位数字表示的月份,例如:01表示一月,12表示十二月
  • MMM:缩写形式的月份,例如:Jan表示一月,Dec表示十二月
  • MMMM:完整形式的月份,例如:January表示一月,December表示十二月

日:

  • DD dd:2位数字表示的日期,例如:01表示1号,31表示31号

星期几:

  • ddd:缩写形式的星期几,例如:Mon表示星期一,Sun表示星期日
  • dddd:完整形式的星期几,例如:Monday表示星期一,Sunday表示星期日

时间:

  • HH:24小时制的小时,例如:00表示午夜12点,23表示晚上11点
  • hh:12小时制的小时,例如:01表示上午1点,12表示下午12点
  • mm:分钟,例如:00表示整点,30表示30分钟
  • ss:秒,例如:00表示整分,59表示59秒
  • a:上午/下午标识,例如:AM表示上午,PM表示下午

参数列表整理:

符号 含义 示例
G 显示纪元文本 AD(公元)
u 年份 2023
У 公元年份 2023
D 一年的第N天 300
M或者L 月份 7;07; Jul; July;
d 一个月的第N目 9
Q或者q 年份中的季度 2; 02; Q2; 2rd quarter
Y 以周为基础的年份 1997;97
w 以周为基础的年份中的周 30
W 一个月的第N周 3
E 星期 Tue; Tuesday; T
e或者c 本地化星期 2; 02; Tue; Tuesday; T
F 一个月的第N周 2
a 一天中的上午(am)或者下午(pm) PM
h 上午下午12小时制(1-12) 10
K 上午下午11小时制(1-11) 1
k 上午下午(1-24) 14
H 小时制(0-23) 1
m 小时中的分钟 30
s 分秒 43
S 当前秒的毫秒 800
A 当前天的毫秒数 1111
n 当前秒的纳秒数 987654321
N 当前天的纳秒数 1234000000
V 时区ID America/Los_Angeles; Z; -08:30
z 时区名称 Pacific Standard Time; PST
O 本地化时区漂移 GMT+8; GM T+08:00; UTC-08:00
X offset-X Z; -08; -0830; -08:30; -083015; -08:30:15
x offset-x +0000; -08; -0830; -08:30; -083015; -08:30:15
Z offset-Z +0000; -0800; -08:00;
p pad modifier 1
分隔符
‘’ 不被解析的文字
[ 可选部分开始
] 可选部分结束

示例:

String pattern = "G uuuu'年'MMMd'日' ZZZZZ VV";
String format= DateTimeFormatter.ofPattern(pattern).format(ZonedDateTime.now());
System.out.println(format);

格式化结果显示:

公元 2023年10月01日 +08:00 Asia/hangzhou

范式格式化还提供了一些常用的格式化模式:文章来源地址https://www.toymoban.com/news/detail-718139.html

LocalDateTime dt = LocalDateTime.now();

// SHORT范式格式化  
String shortDt = dt.format(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT));

// MEDIUM范式格式化
String mediumDt = dt.format(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)); 

🔔写在最后

如果大家对相关文章感兴趣,可以关注公众号"架构殿堂",会持续更新AIGC,java基础面试题, netty, spring boot, spring cloud等系列文章,一系列干货随时送达!

到了这里,关于Java中DateTimeFormatter的使用方法和案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java 基础篇】Java 方法使用详解:让你轻松掌握方法的奥秘

    如果你正在学习Java编程,方法是一个不可或缺的重要概念。方法允许你将代码组织成可重用的块,提高了代码的可维护性和可读性。在本篇博客中,我们将深入探讨Java方法的使用,从基础概念开始,逐步介绍如何定义、调用、传递参数、返回值、异常处理以及方法的最佳实

    2024年02月10日
    浏览(37)
  • 【JAVA】方法的使用:方法语法、方法调用、方法重载、递归练习

    🍉内容专栏:【JAVA从0到入门】 🍉本文脉络:JAVA方法的使用,递归练习 🍉本文作者:Melon_西西 🍉发布时间 :2023.7.19 目录 1. 什么是方法(method) 2 方法定义 2.1 方法定义语法格式  例子:两个数相加 例子:判断某一年是否为闰年并调用判断函数  2.2 方法定义注意事项 3 方法

    2024年02月14日
    浏览(46)
  • 深入了解 Java 方法和参数的使用方法

    方法是一块仅在调用时运行的代码。您可以将数据(称为参数)传递到方法中。方法用于执行特定的操作,它们也被称为函数。 重用代码:定义一次代码,多次使用。 提高代码的结构化和可读性。 将代码分解成更小的模块,易于维护和理解。 方法必须在类内声明。它的定义

    2024年02月19日
    浏览(48)
  • Java-方法的使用

    本章重点: 1. 掌握方法的定义以及使用 2. 掌握方法传参 3. 掌握方法重载 4. 掌握递归 1.1 什么是方法(method) 方法就是一个代码片段. 类似于 C 语言中的 \\\"函数\\\"。方法存在的意义(不要背, 重在体会): 1. 是能够模块化的组织代码(当代码规模比较复杂的时候). 2. 做到代码被重复使用

    2024年02月07日
    浏览(33)
  • java反射的基本使用方法

    当我们使用 Java 开发时,有时需要获取某个类的信息,例如类的属性、方法和构造函数等,然后在程序运行期间动态地操作它们。Java 反射就是用来实现这个目的的一种机制。 Java 反射(Reflection)是 Java 编程语言在运行时动态获取类的信息以及动态调用对象方法的能力。它可

    2024年02月16日
    浏览(40)
  • Java——Switch的使用方法

    在分支结构中,我们除了使用if-else或者是if-else if之外,当分支量过大的时候,我们即可选择使用switch语句进行选择。 当我们需要实现输入 1 1 1 的时候打印出Hello,输入 2 2 2 的时候打印出World,输入其他数字的时候打印出error。 在switch语法中,switch()圆括号中写入判断的数字

    2024年02月07日
    浏览(43)
  • java的return使用方法

    在java里面return有 三种用法 : 结果: break :用来跳出循环的.例如for循环,while循环,do-while循环等各种循环体,我们都可以使用break来跳出,但是如果我们是打算跳出函数的话,不能使用break,因为break不能跳出函数。 return :使整个函数返回的,后面不管是循环里面还是循环外

    2024年02月08日
    浏览(27)
  • 【JavaSE】Java方法的使用

    【本节目标】 1. 掌握方法的定义以及使用 2. 掌握方法传参 3. 掌握方法重载 4. 掌握递归 目录 1.方法概念及使用 1.1什么是方法(method) 1.2 方法定义 1.3 方法调用的执行过程 1.4 实参和形参的关系 2. 方法重载 2.1 为什么需要方法重载 2.2 方法重载概念 3. 递归 3.1 生活中的故事 3.2 递

    2024年02月12日
    浏览(40)
  • 【Java基础篇】方法的使用(方法的重载和递归)

    作者简介: 辭七七,目前大一,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏 :Java.SE,本专栏主要讲解运算符,程序逻辑控制,方法的使用,数组的使用,类和对象,继承和多态,抽象类和接口等内容 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 在

    2024年02月09日
    浏览(54)
  • 【Java基础篇】方法的使用(方法的使用以及形参实参的关系)

    作者简介: 辭七七,目前大一,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏 :Java.SE,本专栏主要讲解运算符,程序逻辑控制,方法的使用,数组的使用,类和对象,继承和多态,抽象类和接口等内容 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 方

    2024年02月08日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包