kdb+/q: 如何将 utc 时间戳转换为日期时间?

kdb+/q:How does one convert a utc timestamp to a datetime?

如何将以下时间戳 t:1595779091979 转换为等效的 `datetime$() 表示形式 (UTC)?

例如,如果有人尝试使用以下方法这样做。

q) `datetime$t
    0000.00.00T00:00:00.000

q) `timestamp$t
    2000.01.01D00:26:35.779091979

(两者都不正确,时间应该是2020.07.26D...)

谢谢

时间戳 1595779091979 看起来像是自 1970 年以来的毫秒数。如果你放弃毫秒 - 转换只是

 q)1970.01.01+0D00:00:01*1595779091
2020.07.26D15:58:11.000000000

或保持毫秒数:

 q)1970.01.01+0D00:00:00.001*1595779091979
2020.07.26D15:58:11.979000000

最后,您可以将以下定义添加到您的实用程序库中

ts:1970.01.01+0D00:00:00.001*

并在需要转换时在代码中使用它

 q)ts 1595779091979
2020.07.26D15:58:11.979000000

更新:稍微短一点的解决方案可以写成

ts:1970.01.01D+1000000*