当前位置: 首页 > news >正文

Java 日期时间格式化模式说明

Java 中日期时间格式化使用特定的模式字符串来定义输出格式。以下是常见的格式化符号及其含义,适用于 SimpleDateFormat 和 DateTimeFormatter


一、日期部分格式化符号

符号含义示例
y年 (Year)yyyy → 2023
M月 (Month)MM → 09, MMM → Sep, MMMM → September
d月中的日 (Day of month)dd → 05, d → 5
D年中的日 (Day of year)D → 256 (第256天)
E星期几 (Day of week)E → Mon, EEEE → Monday
F月中的第几个星期几F → 1 (每月的第一个星期四)
w年中的周 (Week of year)w → 38 (第38周)
W月中的周 (Week of month)W → 3 (第3周)

二、时间部分格式化符号

符号含义示例
H小时 (0-23)HH → 08
k小时 (1-24)k → 24
K小时 (0-11, AM/PM)KK → 08
h小时 (1-12, AM/PM)hh → 08
m分钟 (Minute)mm → 30
s秒 (Second)ss → 45
S毫秒 (Millisecond)SSS → 789
n纳秒 (Nanosecond)n → 123456789
aAM/PM 标记a → AM

三、时区格式化符号

符号含义示例
z时区名称z → CST, zzzz → China Standard Time
Z时区偏移量Z → +0800, XXX → +08:00
O本地化时区偏移O → GMT+8
XISO 8601 时区X → +08, XX → +0800, XXX → +08:00

四、常见格式示例

1. 基本日期时间格式

  • yyyy-MM-dd → 2023-09-15

  • MM/dd/yyyy → 09/15/2023

  • dd-MMM-yyyy → 15-Sep-2023

  • yyyy-MM-dd HH:mm:ss → 2023-09-15 14:30:45

  • yyyy-MM-dd HH:mm:ss.SSS → 2023-09-15 14:30:45.789

2. 带时区的格式

  • yyyy-MM-dd HH:mm:ss Z → 2023-09-15 14:30:45 +0800

  • yyyy-MM-dd HH:mm:ss XXX → 2023-09-15 14:30:45 +08:00

  • yyyy-MM-dd'T'HH:mm:ss.SSSZ → 2023-09-15T14:30:45.789+0800 (ISO 8601)

3. 可读性强的格式

  • EEEE, MMMM d, yyyy → Friday, September 15, 2023

  • hh:mm a → 02:30 PM

  • h:mm a, zzzz → 2:30 PM, China Standard Time


五、使用示例

SimpleDateFormat (传统API)

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formatted = sdf.format(new Date());
// 输出: 2023-09-15 14:30:45

DateTimeFormatter (Java 8+)

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formatted = LocalDateTime.now().format(formatter);
// 输出: 2023-09-15 14:30:45

ISO 8601 格式

Instant.now().toString();  // 自动使用ISO 8601格式
// 输出: 2023-09-15T06:30:45.789Z

六、特殊字符处理

DateTimeFormatter.ofPattern("yyyy-MM-dd 'at' HH:mm:ss");
// 输出: 2023-09-15 at 14:30:45

七、本地化格式

// Java 8 方式
DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG).withLocale(Locale.CHINA);
// 输出: 2023年9月15日 下午02时30分45秒 (中文环境)

http://www.dtcms.com/a/310141.html

相关文章:

  • PTE之路--01
  • vivado扫盲 out-of-context(腾讯元宝)
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现围栏羊驼的检测识别(C#代码,UI界面版)
  • Android Material Components 全面解析:打造现代化 Material Design 应用
  • 数据处理四件套:NumPy/Pandas/Matplotlib/Seaborn速通指南
  • 如何在不依赖 Office 的情况下转换 PDF 为可编辑文档
  • lesson30:Python迭代三剑客:可迭代对象、迭代器与生成器深度解析
  • Redis 数据结构全景解析
  • Linux内核构建系统中的auto.conf与autoconf.h:原理与作用解析
  • 3D 管道如何实现流动的?
  • 基于SpringBoot+MyBatis+MySQL+VUE实现的疗养院管理系统(附源码+数据库+毕业论文+远程部署)
  • cesium FBO(三)渲染到Canvas(灰度图效果)
  • 【OneAPI】网页搜索API和网页正文提取API
  • Lombok常用注解及功能详解
  • oracle的安全加密有哪些?
  • Python文件对比利器:filecmp模块详解
  • 学习嵌入式第十七天
  • Vue项目使用ssh2-sftp-client实现打包自动上传到服务器(完整教程)
  • 10.Linux 用户和组的管理
  • 【HL7】.aECG与.hl7文件的关系和区别
  • Java滤波去除异常峰值方法(二)
  • CGA匹兹堡睡眠质量指数量表评估睡眠状况​
  • nCode 疲劳分析场景复杂,企业如何科学合理分配授权资源?
  • Shader开发(六)什么是着色器
  • Go语言常用的设计模式
  • leetcode热题——全排列
  • 视频质量检测中卡顿识别准确率↑32%:陌讯多模态评估框架实战解析
  • 音频获取长度
  • anaconda、conda、pip、pytorch、torch、tensorflow到底是什么?它们之间有何联系与区别?
  • 目标检测检出率,误检率,ap,map等评估python代码