Time
事实时间怎样取值,事实何时算进行中
事实时间回答“这件事什么时候发生、什么时候成立”。本页规定它的取值;它在 Observation 上怎样表示,见 Observation · 事实时间。
取值
TIME-1 未知就是未知
执行方:写入方
事实时间未知时为 null,不得用其他时刻填补。其他时刻包括形成观测的时刻、后端收到或保存请求的时刻、recordedAt,以及 EntityId 和 VersionId 的生成时刻。例如今天同步一条三天前的浏览历史,事实时间是三天前,形成观测和保存的时刻是今天。
读取状态的时刻本身就是事实成立的时刻,可以作为事实时间,见 TIME-3。
TIME-2 取自证据
执行方:写入方
事实时间取自证据。历史事件取来源数据中的时间;EntitySchema 的 description 写明取自哪些来源字段。
TIME-3 读取时刻
执行方:写入方
观测内容表达“这一刻读到的状态”时,读取时刻就是事实成立的时刻,可以作为事实时间。例如前台状态 Observer 读到 VS Code 此刻在前台。
进行中与结束
TIME-4 是否结束
执行方:写入方、读取方
事实是在进行中还是已经结束,只由证据和业务规则中的结束条件判断。写入方可以在事实进行中就形成 Observation,随证据形成新版本补全;也可以等事实结束后再形成。
来源的原始时间
TIME-5 保留原始时间
执行方:写入方
观测内容可以保留来源的原始时间、时区和精度。来源只有本地日期、不带时区的本地时间或相对计数时,保留原值,等取得可靠的换算依据后再填写边界。来源的精度高于后端时,同样保留原值,由业务规则说明怎样换算。后端的精度见 Storage · PostgreSQL。