
在处理涉及每年周数问题时 ,如果处于不同的地区或文化中,总会遇见一些标准问题。比如基督教信徒喜欢把周日当做每周的第一天。而不同的编程语言,也会有自己的处理方案,有些是每年从第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 的规则,再来详细了解下周及周年的详细的计算规则: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 的规则,避免引起不必要的麻烦。参与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开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的!