暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

每年一问:Java日期格式化中周所在年引发的Bug

海豚调度 2025-01-03
142

点击蓝字,关注我们

作者 | 袁丙泽
编辑 | 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 的规则,再来详细了解下周及周年的详细的计算规则:
1、每年有52周或者53周
2、周一至周日为一个完整周。
3、每周的周一是该周的第1天。周日是该周的第7天
4、  每年的第一周 为 每年的第一个 周四  所在的周。比如 2017年1月5日为当年的第一个周四,那么 2017-01-02 至 2017-01-08 为2017年第一周
5、每年的最后一周为当年最后一个周四所在的周。比如2016年12月29日为当年的最后一个周四,那么2016-12-26 至2017-01-01 为2016年的最后一周。
6、周年,当前周所在的年份为周年。比如 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 的规则,避免引起不必要的麻烦。
<🐬🐬 >

推荐阅读

用户实践案例
奇富科技  腾讯音乐 联通数科 拈花云科
蔚来汽车 长城汽车 集度 长安汽车
思科网讯 食行生鲜 联通医疗 联想
新网银行 唯品富邦消费金融  蜀海供应链 
自如 有赞 伊利 当贝大数据
珍岛集团 传智教育 Bigo
YY直播  作业帮 太美医疗
某新能源 中电信翼康
迁移实践
Azkaban   Ooize(当贝迁移案例)   
Airflow (有赞迁移案例) 
Air2phin(迁移工具)
Airflow迁移实践

新手入门
选择Apache DolphinScheduler的10个理由
Apache DolphinScheduler 3.1.8 保姆级教程【安装、介绍、项目运用、邮箱预警设置】轻松拿捏!
Apache DolphinScheduler 如何实现自动化打包+单机/集群部署?
DolphinScheduler快速上手:基于Docker Compose的安装与配置全攻略
Apache DolphinScheduler 在大数据环境中的应用与调优
Apache DolphinScheduler-3.2.0集群部署教程

< 🐬🐬 >
参与社区

参与Apache DolphinScheduler 社区有非常多的参与贡献的方式,包括:


贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。

社区汇总了以下适合新手的问题列表:https://github.com/apache/dolphinscheduler/issues/5689

非新手问题列表:https://github.com/apache/dolphinscheduler/issues?
q=is%3Aopen+is%3Aissue+label%3A%22volunteer+wanted%22

如何参与贡献链接:https://dolphinscheduler.apache.org/zh-cn/community/development/contribute.html

来吧,DolphinScheduler开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的!

文章转载自海豚调度,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论