用于账期、日报、到期时间和跨年格式化,检查时间含义、时区转换和并发安全。
## 任务目标 请检查 Java 日期、时区转换与统计周期的边界。 以核查和评审为主,给出有证据的判断及可复核的修改建议;本次用户另有明确实现要求时,按其授权范围执行。 ## 输入信息(选填) 两项均可留空,也可直接用一句话说明目标并附上已有资料。无需自行整理版本、配置或完整需求表;能读取的内容由执行者补齐。 时间字段或周期:优先检查当前报表或日期异常;留空时从格式化、日期范围查询和统计分组中选择一条同时涉及接口与数据库的时间转换链。 工程与时间资料:读取字段类型、序列化与格式化配置、SQL 区间、数据库迁移和现有测试,自动核对 Java 版本、应用时区及已声明的业务周期。 ## 信息不完整时 先使用本次对话中已经说明的信息;用户留空、写“暂无/不清楚”或未替换输入标记,都按缺失处理,不当作真实路径、参数或业务值。已能从资料确定的内容不重复询问,不编造文件、日志、接口、业务值或执行结果。在用户已授权的范围内读取相关工程和材料,不为补齐输入擅自扩大操作范围。 ### 优先确认 - 追踪前端、请求、Java 对象、数据库和导出的时间单位与表示方式。 - 检索日期格式、默认时区、秒毫秒转换、共享可变格式化器及系统当前时间调用。 - 读取日报月报 SQL 的上下界与业务统计分组,核对跨年周所属年和日历年。 - 查找字段注释、历史迁移、测试时钟和既有跨年、闰日用例。 ### 可采用的默认处理 - 默认只读检查,不更改全局时区或批量转换历史数据。 - 工程未声明业务时区时明确保留未知,示例使用显式标注的时区,不按中文环境推断统计口径。 - 用固定时间构造边界样例;候选区间可说明左闭右开优势,但不替换已有业务约定。 ### 必须有依据的事项 - 字段代表时间点、本地日期还是时长,以及既有历史数据的时区解释不明时,不自动转换或回填。 - 结算或统计周期、截点和首尾包含规则没有依据时,不自行制定报表预期。 只有缺口会改变业务结果、权限边界或关键实现,且无法从现有资料确认时,才集中提出最多 3 个关键问题;说明影响,并继续完成不依赖答案的部分。一般命名、排版和可逆实现细节按现有约定决定,不逐项等待确认。 ### 资料仍不足时的交付 - 无工程时交付时间字段字典与跨年、月末、闰日、秒毫秒和多时区样例表。 - 缺业务周期时先检查格式与线程安全,区间样例列条件化结果并标明尚不能判定的统计口径。 ## 执行要求 适用范围:Java日期时间处理及数据库、前端之间的数据转换;使用java.time时需JDK8及以上,旧接口替换须保留既有时区与业务语义。 区分日期格式中的日历年与周所属年,检查旧格式化器的线程安全。 检查步骤: 1. 逐个识别字段表示的是时间点、本地日期、本地时间还是持续时长,注明单位与来源;账期、截止日期和事件发生时间不能仅凭字段名相互转换。 2. 追踪前端、接口、Java对象、数据库到导出文件的转换链,查找默认时区、隐式格式、秒与毫秒混用,以及同一字段在不同入口中使用不同解释。 3. 针对年末年初构造跨年样例,核对格式化、分组、排序和文件名称是否属于正确日历日期;仅在业务确实按周核算时使用周所属年语义。 4. 检查日报和月报的区间边界,明确定义起止是否包含,避免相邻周期重复或漏记;若涉及多个时区,补充本地一天对应的实际时间范围。 5. 核对日期工具对象是否被多线程共享、是否可变、是否依赖服务器当前时间;给出可注入业务时钟的改进范围,让测试不依赖执行当天。 6. 覆盖跨年、月末、闰日、时区转换、缺失时间及夏令时适用地区,分别验证展示和统计结果;若业务只使用固定时区,清楚说明无需扩展的范围。 ## 交付与验收 输出要求:输出时间字段字典、转换链、缺陷及修复建议、边界样例表。样例写明输入、业务时区、期望日期或区间以及实际结果,保留对历史数据解释和接口兼容性的说明。 只报告有证据支持的问题;区分“已验证”“推测”和“待验证”,涉及变更时给出受影响文件或对象、最小修改和复核方法。代码与操作示例使用占位符,不写入真实密码。 ### 本条完成检查 - 转换链逐处说明类型、单位、格式和时区,不混同本地日期与时间点。 - 边界用例具有输入、业务时区、预期区间和实际结果。 - 修正建议说明历史数据与客户端兼容,未定义的统计业务不编造验收结果。 按本条要求组织结果,使用简洁中文和一致的编号、术语、缩进及空行;已有项目格式优先。只说明实际完成的内容,将采用的假设、未完成项和缺少的条件写在相关位置,不额外生成无关文档。未执行、无法复现或缺少证据的检查如实标注,不宣称已通过或已有性能收益。 ## 参考资料与适用边界 来源(核验日期:2026-09-08): [阿里巴巴《P3C-PMD 官方公开规则》](https://github.com/alibaba/p3c/blob/master/p3c-pmd/README.md) 整理范围:仅依据上述公开文档的相关建议,业务场景、变量、检查流程与验收格式均为独立改写,不代表相关企业完整内部规范。