用途:这是一项时间值规范化指导技能。当技术栈支持带时区的内置或标准库时间类型时,应使用这类类型并把时区设为 UTC,而不是服务器本地时间、用户本地时间或任意地理时区。
适用范围:定义带时区的日期时间或时间戳字段;定义可携带时区信息的时间参数或返回类型;解析或序列化带时区的时间值;在持久化或传输边界映射带时区值;在本地时间与规范化存储/交换值之间转换;为带时区类型配置默认时区。仅日期或仅时间、不携带时区语义的值不在范围内。
主要规则:优先使用能携带时区语义的原生或标准库时间类型,不要在有带时区类型时退回朴素本地时间;使用语言或标准库提供的规范 UTC 表示,优先命名 UTC 构造(如 UTC、Z 或标准库 UTC 时区对象),而非临时本地时区设置;在边界处规范化,外部或本地值进入系统时转换为 UTC,除非边界契约明确要求其他表示,否则序列化或持久化规范化后的 UTC 值;保持 UTC 语义显式,在类型、构造器、辅助函数和序列化代码中体现该值带时区且已规范化为 UTC,不依赖服务器默认、进程默认、数据库会话默认或环境本地时区配置。
检测流程:判断值是否可带时区;识别技术栈中支持带时区的原生或标准库类型并遵循项目既有约定;追踪规范化点,找出用户输入、API、数据库、任务或集成等入口,以及本地或偏移输入需转为 UTC 的位置,并确认后续读写与比较保持 UTC。
编写或修改时:优先带时区内置类型而非朴素类型;用标准 UTC 时区、时钟或构造路径创建值,避免本地 now 辅助函数或系统默认时区构造器;仅在边界处转换,内部保持 UTC;持久化或输出采用 UTC 安全格式并保留 UTC 事实。
审查问题:该值能否用内置带时区类型表示?是否使用了该类型而非朴素本地时间?时区是否显式为 UTC?是否依赖服务器本地或进程默认时区?改动是否会丢失 UTC 规范化?
完成时报告:说明识别或修改了哪些带时区时间值或类型、使用了哪些内置或标准库带时区类型、在何处实现或保留了 UTC 构造、规范化、序列化或持久化。
限制:资料未提供具体语言、库、代码示例、安装命令或平台信息,实际实现需结合所用技术栈的既有约定。