Agent 接口传的是日期还是时间点,怎样避免交付日期被改成前一天
Agent传交付日期时,先确认字段表示哪一天,还是某个实际时间点。交付日通常需要保持日历日期,消息发生时刻则需要可比较的时间表示;把全部字段转成UTC午夜,可能让另一个时区的页面显示为前一天。本文用合成接口字段做往返核对,不讨论定时器几点触发。
给字段写出业务含义
合成任务有交付日、记录创建时刻和部门当地截止三项。交付日没有一天中的具体时刻;创建时刻是已经发生的事件;当地截止除了日期和钟点,还需要适用地区规则。先问业务方每项允许什么值,再选类型,不能因为数据库统一用时间戳就让前端自行猜含义。
字段字典记录名称、含义、输入来源、存储类型、输出格式和界面显示。日期缺失可以是未知,不能默认今天;自然语言说下周而没有确定日期时,应补问或等待明确输入。模型理解后的候选值需保留原依据,尤其不能将用户所在地自动当成业务组织所在地。
日期与时刻选择不同表示
PostgreSQL日期时间文档区分date、带时区和不带时区的timestamp等类型。ProtoJSON说明规定其时间戳映射形式。引用这些机制不等于要求所有系统用同一种数据库;目标接口采用什么字段,仍按它的合同核实。
对交付日,传明确日期字符串并按日历日期显示,不经过无必要的时区换算。对发生时刻,保留能够定位时间点的偏移或规范表示,页面可换当地展示。对未来当地截止,说明采用的地区时区与规则;只有一个偏移值时,要核对能否表达未来适用的业务安排。
逐段核对往返而非只看提交页
下载日期与时间点字段用例。附件包含日期跨时区、同一时刻不同偏移、未知日期、缺少时区的截止及显示本地化。把同一输入依次经过浏览器、接入层、业务接口和数据库再读回,比较日期字段逐字不变、时间点等价,以及缺失值没有变成默认日期。
测试不要只看最后截图。一处接口可能先把日期扩展成午夜,另一处又截取本地日期,碰巧在开发机时区显示正确。保存每一段实际类型与序列化结果,才能找到哪层改变语义。附件是真实记录模板,预期不是已完成的跨时区实验。
边界与错误需要明确拒绝
当地钟点还可能因地区时钟调整而重复或不存在。截止合同遇到这类输入时,要求用户选择可定位的时刻或按组织明确规则处理,不能悄悄采用运行机器的默认解释。测试记录同时保存地区时区、解析后的时间点与用户看到的原钟点;只记录一个偏移值不足以解释所有未来当地安排。
不合法日期应在进入业务调用前被拒绝;没有时区语义的截止,先补齐合同而不是猜偏移。输入包含时间点但字段只收日期时,决定是拒绝还是由用户明确选择日期,不能静默截断。业务需要历史发生时刻时,也不能用报告生成时刻代替。
显示格式可以使用用户熟悉的年月日顺序,但发送接口仍用约定的机器格式。页面回显原始业务日期,避免用户在预览中已经看到错误却仍提交成功。若某遗留系统只有无时区时间字段,记录它约定的组织时区及转换责任,不宣称数据库类型本身保存了全部地区规则。
日期语义与定时任务时区是不同验收对象。通过流程自动化专题整理实际字段,再在定制咨询提供脱敏请求、页面显示和数据库类型,可以定位转换层并定义往返测试;没有这些证据时,不用模型猜测来修正已经写入的业务日期。