SuperAPI AI 工具集

cc-time-zone-safety

安全与审计

查看项目

更新于 10-15 21:11

技能介绍

用途:该技能面向服务端开发,解决同一份代码在开发机(Asia/Shanghai)与生产机(UTC)运行时时区不一致、导致“本周起点”“今日订单”等统计错乱的问题。

主要能力:

  1. 识别裸调时间 API 的陷阱,如 LocalDate.now()、LocalDateTime.now()、new Date()、time.Now() 依赖 JVM 或系统默认时区。
  2. 提供项目级业务时区常量方案,如 ZoneId.of("Asia/Shanghai"),要求所有 .now() 显式传入时区;Instant.now() 因是 UTC 时间戳可裸用。
  3. 规范周/月/日起点计算,要求 with(DayOfWeek.MONDAY).atStartOfDay() 链路前带业务时区;若数据库存 UTC,需先转 Instant。
  4. 给出数据库与应用层时区一致性策略:策略 A 为业务时区全栈(DATETIME + serverTimezone=Asia/Shanghai + LocalDateTime),策略 B 为 UTC 存储(TIMESTAMP + serverTimezone=UTC + Instant/OffsetDateTime),禁止混用。
  5. 提供多语言示例与嗅探命令,如 grep -rnE "LocalDate.now()|LocalDateTime.now()" src/main/java/、grep -rnE "time.Now()" --include=".go" .、grep -rnE "new Date()|Date.now()" --include=".ts" --include="*.js" src/。
  6. 覆盖部署层固定 TZ 环境变量、测试用 Clock.fixed() 注入、API 文档声明时间参数时区语义等检查项。

使用方式:按检查清单逐项排查应用层、数据层、部署层与接口层;结合项目实际选择时区策略并文档化。

适用场景:单一时区业务或跨时区 SaaS 服务端开发、代码评审与 CI 检查。

限制:资料未提供具体安装命令、收费信息或平台支持范围;示例以 Java 为主,其他语言仅作参考。