Domino日期时间的16进制表示法

Domino 环境中各种 ID 的介绍这篇文章中我介绍过,NSF 的副本 ID 实际上就是库的创建时间,文档 UNID 的后半部分也是文档的创建时间。我们来看看样例:

副本标识符:48257BA6:033771DF

文档UNID:9CC4EF2FC8A1639748257CB40036EBE6

看上去粗体的部分是很类似,只不过和时间看不出太大联系,应该是编码过了。

再看两个 Domino 自带数据库的文档样例。第一个是管理请求文档:

domino-hex-time-1第二个是 Catalog 文档:

domino-hex-time-2这两个文档存储的都是数据库副本 ID,但从右边的结果上看实际存储的都是时间值。看上去日期/时间和副本 ID 的 16 进制数应该是可以互相转换的。通过查看相关视图设计,我们发现一个文档中没有的公式函数:

@Text(“ProxyReplicaID”; “*”)

通过 @Text 的”*“参数,可以将一个时间值转换为对应的字符串。对应的,通过以下 Lotusscript 代码可以反过来转换:

Dim replicaTD as New NotesDateTime(dbTarget.ReplicaID)

参考文档:
Creating a replica ID item for adminp requestsHow to interpret the Hexadecimal values in a Time/Date value