Java 日期时间格式化标准

文章目录

  • Java日期时间格式化符号
  • ISO 8601中的日期时间
    • ISO 8601标准的定义
    • ISO 8601日期时间格式
  • 周数年份
    • ISO 8601中的周数年份
    • Java中的周数年份
  • Java跨年日期格式化BUG
  • 注意事项


Java日期时间格式化符号

JDK官网截图:
在这里插入图片描述

格式化符号梳理:

符号描述符号用法示例
G公历纪元G:公历纪元AD(公元) 、BC(公元前)
y年份yy:两位年份
yyyy:四位年份
24
2024
Y年份(ISO周数所在年份,可能跨年)YY:两位年份
YYYY:四位年份
25
2025
M月份M:月份(不带零)
MM:月份(不带零)
MMM:月份缩写
MMMM:月份全写
1
01
Jan一月
January一月
dd:单位数字或两位数字
dd:两位数字
6
06
H小时(24小时制)H:小时(24小时制,不带零)
HH:小时(24小时制,带零)
9
09
h小时(12小时制)h:小时(12小时制,不带零)
hh:小时(12小时制,带零)
9
09
m分钟m:分钟(不带零)
mm:分钟(带零)
5
05
ss:秒(不带零)
ss:秒(带零)
3
03
S毫秒S:毫秒(不带零)
SSS:毫秒(带零)
56
056
E星期EEE:星期缩写
EEEE:星期全写
Mon星期二
Monday星期二
u星期(数字)u:星期(数字)1234567
w周数(年内的第几周)w:年内第几周2(表示年内的第2周)
W周数(月内的第几周)W:月内的第几周2(该月的第2周)
F月份中的第几个周几F:月份中的第几个星期几2(该月的第二个星期x)
D年中天数D:一年中的第几天6(一年中的第6天)
aAM/PMa:上午或下午的标记AMPM上午下午
Z时区偏移Z:时区偏移(格式:+0800+0800(UTC+8时区)
X时区偏移(ISO 8601格式)X:时区偏移(ISO 8601格式,格式:+08+08(UTC+8时区)
z时区(时区名称)z:时区缩写
zzzz:时区全称
CST(时区缩写)
中国标准时间 (时区全称)
'文字字符(原样输出)'':原样输出字符'星期天'(原样输出 :星期天

ISO 8601中的日期时间

ISO 8601标准的定义

  • 一年中的第一个周:一年中的第一个周是包含该年的第一个星期四的周。这意味着该年的第一个周可能会跨越前一年和当前年。
  • 每周的起始日:ISO-8601将周的起始日定义为星期一。
  • 每周的结束日:ISO-8601将周的结束日定义为星期日。

ISO 8601日期时间格式

ISO 8601规定了一种标准的日期和时间表示方式,以确保在全球范围内的一致性。以下是ISO 8601的基本格式:

  • 日期格式:YYYY-MM-DD

    • YYYY表示四位数的年份
    • MM表示两位数的月份
    • DD表示两位数的日期
  • 时间格式:hh:mm:ss

    • hh表示两位数的小时
    • mm表示两位数的分钟
    • ss表示两位数的秒
  • 日期时间格式:YYYY-MM-DDThh:mm:ss

    • 使用字母’T’来分隔日期和时间

周数年份

在日期时间处理时,通常有两种不同的年份表示方式:

  • 常规年份:这是基于日历年(公历年),即我们通常使用的年份。

    例如:2024年12月31日的年份是2024

  • 周数年份:周数年份是根据一年的第一个完整星期来定义的,通常在需要进行国际化或跨年时间计算时使用。

    例如:ISO 8601 标准规定了一个系统,其中一周的第一天是星期一,并且第一周是包含该年1月4日的那一周。周数年份与常规年份可能并不完全一致。2024年12月31日的周数年份是2025

ISO 8601中的周数年份

在日期时间处理时,通常有两种不同的年份表示方式:

  • 常规年份:这是基于日历年(公历年),即我们通常使用的年份。

    例如:2025年1月1日的年份是2025

  • ISO周数年份:这是基于ISO 8601标准的年份,周数是基于一周中的第一天(周一)来计算的。

    ISO 8601定义:一年的第一周是包含该年首个周四的那一周,所以ISO年份可能与日历年份不同

    例如:2024年12月31日的ISO周数年份是2025

Java中的周数年份

需要注意:分析发现Java中的周数年份与ISO 8601的是有区别的(正确性不太确定,至少使用SimpleDateFormat格式化是这样的)。

Java中和ISO 8601中的周数年份(Y)对比:

  • Java 中的周数年份(正确性不太确定):

    • 一年的第一周:是包含1月1日的那一周,如果该周(星期日 ~ 星期六)有几天在上一年中,那么这几天所属年份也为该年
    • 每周的起始日:星期日
    • 每周的结束日:星期六
  • ISO 8601中的周数年份:

    • 一年的第一周:是包含该年首个周四的那一周,如果该周(星期一 ~ 星期日)有几天在上一年中,那么这几天所属年份也为该年
    • 每周的起始日:星期一
    • 每周的结束日:星期日

Java跨年日期格式化BUG

误用YYYY可能导致年份错误,具体原因参考上文,需改为使用yyyy。

例如,时间为2024-12-31

  • yyyy-MM-dd,输出:2024-12-31
  • YYYY-MM-dd,输出:2025-12-31

注意事项

  • 在一些西方国家,通常把星期日作为一周的第一天;Java(使用SimpleDateFormat格式化)也是如此,把星期日作为一周的第一天。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/65448.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【2024华为OD-E卷-200分-数值同化】(题目+思路+JavaC++Python解析)

题目描述 题目名称:数值同化 题目背景: 在一个数值同化过程中,你需要将一组数值进行特定的处理,使得它们能够“同化”到一个目标值附近。具体做法是,给定一个数组 nums 和一个目标值 target,你需要对数组…

【HUAWEI】HCIP-AI-MindSpore Developer V1.0 | 结课测试

目录 一 单选 二 多选 三 判断 四 填空 一 单选 1 一张图片在存放过程中出现了很多小的噪声,或白或黑,对其扫描进行以下哪一个操作的去噪效果最好? A.均值滤波 B.中值滤波 C.高斯滤波 D.拉普拉斯滤波 2 以下哪个方法中使用了掩码语…

ESP32-S3模组上实现低功耗(6)

接前一篇文章:ESP32-S3模组上实现低功耗(5) 本文内容参考: 系统低功耗模式介绍 - ESP32-S3 - — ESP-IDF 编程指南 latest 文档 电源管理 - ESP32-S3 - — ESP-IDF 编程指南 latest 文档

chrome浏览器的更新提示弹窗无法更新Chrome解决方法

使用组策略编辑器 此方法适用于 Windows 系统且系统为专业版及以上版本,家庭版系统没有组策略功能。 按下Win R键,打开 “运行” 对话框,输入gpedit.msc并回车,打开组策略编辑器。 在组策略编辑器中,依次展开 “计算机…

高山旅游景区有效降低成本,无人机山下到山上物资吊运技术详解

在高山旅游景区,传统的物资运输方式往往面临人力成本高昂、效率低下等问题,而无人机技术的引入为这一难题提供了新的解决方案。以下是对无人机从山下到山上进行物资吊运技术的详细解析: 一、无人机物资吊运技术的优势 1. 降低人力成本&#…

读博生涯记录2 __ 2025.1.8 --- 关于博一上学期的一些经历和感受

时间过得好快,2024年8月底入学至今都快半年了。学校已经放寒假了,我也计划过多几天就回去,在这个太阳早已落山的午后,在这工位区的一隅,想着记录一下本学期我的一些经历和感受。 专业上:本学期我给自己的规…

Python爬虫 - 豆瓣图书数据爬取、处理与存储

文章目录 前言一、使用版本二、需求分析1. 分析要爬取的内容1.1 分析要爬取的单个图书信息1.2 爬取步骤1.2.1 爬取豆瓣图书标签分类页面1.2.2 爬取分类页面1.2.3 爬取单个图书页面 1.3 内容所在的标签定位 2. 数据用途2.1 基础分析2.2 高级分析 3. 应对反爬机制的策略3.1 使用 …

2501d,d17年前就有了编译时

D在17年前就有了编译时!D功能稳步进入其他语言. :此处的编译时关键字指示在编译时运行它前面的块. D不使用关键字来触发它.触发它的是"常 式".当然,必须在编译时可计算常式.如: int sum(int a, int b) > a b; void test() {int s sum(3, 4); //在运行时运行,e…

Taro地图组件和小程序定位

在 Taro 中使用腾讯地图 1.首先在项目配置文件 project.config.json 中添加权限: {"permission": {"scope.userLocation": {"desc": "你的位置信息将用于小程序位置接口的效果展示"}} }2.在 app.config.ts 中配置&#x…

深度学习——回归实战

线性回归: 线性:自变量和应变量之间是线性关系,如:y wx b 回归:拟合一条曲线,使真实值和拟合值差距尽可能小 目标:求解参数w和b 所用算法:梯度下降算法 梯度下降&#…

Angular 最新版本和 Vue 对比完整指南

1. Angular 最新版本 当前 Angular 最新稳定版本是 Angular 17(2024年初) 2. 主要区别对比表 特性 | Angular | Vue 框架类型 | 完整框架 | 渐进式框架 默认语言 | TypeScript | JavaScript/TypeScript 数据处理 | RxJS | Promise/async/await 架构特点 | 依赖注入,…

单片机-串转并-74HC595芯片

1、74HC595芯片介绍 74HC595 是一个 8 位串行输入、并行输出的位移缓存器,其中并行输出为三态输出(即高电平、低电平和高阻抗)。 15 和 1 到 7 脚 QA--QH:并行数据输出 9 脚 QH 非:串行数据输出 10 脚 SCLK 非&#x…

探索AI在地质科研绘图中的应用:ChatGPT与Midjourney绘图流程与效果对比

文章目录 个人感受一、AI绘图流程1.1 Midjourney(1)环境配置(2)生成prompt(3)完善prompt(4)开始绘图(5)后处理 1.2 ChatGPT不合理的出图结果解决方案 二、主题…

【微服务】6、限流 熔断

线程隔离与容错处理 本视频主要讲解了在购物车业务中,因商品微服务响应慢导致的问题及解决方案,重点介绍了线程隔离后查询购物车业务不可用的情况,以及如何通过Fallback逻辑进行缓解,包括配置Feign调用为簇点资源、添加Fallback逻…

springboot+vue使用easyExcel实现导出功能

vue部分 // 导出计算数据exportDataHandle(id) {this.$http({url: this.$http.adornUrl(/xxx/xxx/exportCalDataExcel),method: post,data: this.$http.adornData({id: id}),responseType: blob, // 重要:告诉axios我们希望接收二进制数据}).then(({data}) > {c…

25年01月HarmonyOS应用基础认证最新题库

判断题 “一次开发,多端部署”指的是一个工程,一次开发上架,多端按需部署。为了实现这一目的,HarmonyOS提供了多端开发环境,多端开发能力以及多端分发机制。 答案:正确 《鸿蒙生态应用开发白皮书》全面阐释…

ELK实战(最详细)

一、什么是ELK ELK是三个产品的简称:ElasticSearch(简称ES) 、Logstash 、Kibana 。其中: ElasticSearch:是一个开源分布式搜索引擎Logstash :是一个数据收集引擎,支持日志搜集、分析、过滤,支持大量数据…

Dubbo-笔记随记一

一、实战 1 . Springboot整合 1.1 服务提供者 1.1.1 依赖 <dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>3.2.10</version></dependency><dependency&g…

git tag

文章目录 1.简介2.格式3.选项4.示例参考文献 1.简介 同大多数 VCS 一样&#xff0c;Git 也可以对某一时间点的版本打上标签&#xff0c;用于版本的发布管理。 一个版本发布时&#xff0c;我们可以为当前版本打上类似于 v.1.0.1、v.1.0.2 这样的 Tag。一个 Tag 指向一个 Commi…

ETCD渗透利用指南

目录 未指定使用put操作报错 未指定操作版本使用get报错 首先etcd分为两个版本v2和v3&#xff0c;不同的API结果无论是访问URL还是使用etcdctl进行通信&#xff0c;都会导致问题&#xff0c;例如使用etcdctl和v3进行通信&#xff0c;如果没有实名ETCDCTL_API3指定API版本会直接…