登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
安全
›
每年一问:Java日期格式化中周所在年引发的bug ...
每年一问:Java日期格式化中周所在年引发的bug
[ 复制链接 ]
移国拱
2025-6-11 09:02:27
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
作者 | 袁丙泽
编辑 | Debra Chen
在处理涉及每年周数问题时,如果处于不同的地区或文化中,总会遇见一些标准问题。比如基督教信徒喜欢把周日当做每周的第一天。而不同的编程语言,也会有自己的处理方案,有些是每年从第0周开始,有些是从第一周开始。对于数据分析者来说,标准不统一带来的歧义是非常致命的。
在Apache DolphinScheduler使用过程中,每年新旧年交替的时候,日期的使用问题就会凸显出来。为避免日期带来的歧义,笔者认为最好的办法是严格按照 ISO 8601 标准进行处理。
从Java 8 开始,Java的日期格式化开始支持ISO 8601标准。大写Y 表示周所在年。小写y表示自然年。由于很多程序在开发时并未注意大小写问题。在处理日期时,每年年末或者年初都能碰到由于这个问题踩到坑的。
参考:https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/format/DateTimeFormatter.html
根据ISO 8601 的规则,再来详细了解下周及周年的详细的计算规则:
每年有52周或者53周
周一至周日为一个完整周。
每周的周一是该周的第1天。周日是该周的第7天
每年的第一周 为 每年的第一个 周四 所在的周。比如 2017年1月5日为当年的第一个周四,那么 2017-01-02 至 2017-01-08 为2017年第一周
每年的最后一周为当年最后一个周四所在的周。比如2016年12月29日为当年的最后一个周四,那么2016-12-26 至2017-01-01 为2016年的最后一周。
周年,当前周所在的年份为周年。比如 2017年1月1日的周年为2016年。2016年1月1日,2016年1月2日,2016年1月3日的周年均为2015年。 2024年12月30日、12月31日的周年均为2025年。
参考:https://blog.csdn.net/yuanbingze/article/details/72127763
再次提醒大家,在日期使用时注意Y的大小写和ISO 8601 的规则,避免引起不必要的麻烦。
本文由 白鲸开源 提供发布支持!
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
每年
一问
Java
日期
格式化
相关帖子
Java+Playwright自动化测试-27- 操作单选和多选按钮
在java中实现c#的int.TryParse方法
Java+Playwright自动化测试-26- 操作Select下拉选择框
【Java】ThreadLocal源码解析
Java关键字解析之abstract:抽象的本质、规范定义与多态基石
[数据结构/Java] 数据结构之循环队列
Java关键字解析之volatile:可见性的守护者、有序性的调节器
1.java基本语法
Java 25 (LTS) 重磅发布:AI、性能、安全全面革新,新手入门门槛再创新低!
Java 25 (LTS) 重磅发布:AI、性能、安全全面革新,新手入门门槛再创新低!
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
Java+Playwright自动化测试-27- 操作单选和多选按钮
1
29
沦嘻亟
2025-12-07
安全
在java中实现c#的int.TryParse方法
0
827
歇凛尾
2025-12-09
业界
Java+Playwright自动化测试-26- 操作Select下拉选择框
2
294
任俊慧
2025-12-12
业界
【Java】ThreadLocal源码解析
0
145
祉遛吾
2025-12-13
业界
Java关键字解析之abstract:抽象的本质、规范定义与多态基石
0
35
斜素欣
2025-12-13
安全
[数据结构/Java] 数据结构之循环队列
0
490
豺独
2025-12-14
业界
Java关键字解析之volatile:可见性的守护者、有序性的调节器
1
85
阎一禾
2025-12-14
安全
1.java基本语法
0
514
每捎京
2025-12-15
安全
Java 25 (LTS) 重磅发布:AI、性能、安全全面革新,新手入门门槛再创新低!
0
228
褐洌
2025-12-16
安全
Java 25 (LTS) 重磅发布:AI、性能、安全全面革新,新手入门门槛再创新低!
0
285
肿圬后
2025-12-16
回复
(1)
臧莞然
12 小时前
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
感谢,下载保存了
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
业界
代码
签约作者
程序园优秀签约作者
发帖
移国拱
12 小时前
关注
0
粉丝关注
21
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991124
anyue1937
9994893
kk14977
6845357
4
xiangqian
638210
5
韶又彤
9997
6
宋子
9983
7
闰咄阅
9993
8
刎唇
9993
9
俞瑛瑶
9998
10
蓬森莉
9951
查看更多
今日好文热榜
809
Flink学习笔记:反压
694
JUnit 5 中的 @ClassTemplate 实战指南
226
Java 25 (LTS) 重磅发布:AI、性能、安全全
283
Java 25 (LTS) 重磅发布:AI、性能、安全全
280
负载均衡的概念、分类、算法、健康检查机制
738
Prompt 工程
499
Prompt 工程
759
Gemini 3.0 Pro 迁移避坑指南:OpenAI API
21
是猫踩键盘还是乱码?不,这是你刚写的正则
249
RSA加密
318
pydash原型链污染
180
大模型榜单周报(2025/12/08—2025/12/12)
851
当你不再迷信“最强模型”,系统设计才刚刚
877
软件i2c
303
2025年专业起名老师联系方式汇总:全国资深
654
解码IP协议号:网络世界的“货物运单”
712
Python Selenium 漫步指南:从入门到精通
646
AI 付费模式终极对比:ChatGPT、Gemini、Cl
840
JSAPIThree 加载 3D Tiles 学习笔记:大规
360
LLM 工具调用的范式演进与认知模型集成