前几天解码时间时遇到一个TDateTime,以前都是基于unix时间戳TIMESTAMP来操作时间的,第一次听说还有TDATETIME。TDateTime值的整数部分为自从12/30/1899以来的天数,其小数部分为天的时间。具体8字节的说明如下:

TDATETIME使用8字节的存储空间,TIMESTAMP的存储空间为4字节。TIMESTAMP比DATETIME的空间利用率更高,但是TDATETIME表示的时间范围更广。
那么就来实现python来解码时间了,timestamp其实很好实现的,有标准库中的函数即可,如下所示。

那么TDATETIME表示为天数偏移量,然后使用datetime.timedelta函数来计算偏移量,加上基础时间即可得到具体的时间值。实现的函数如下。如果你输入的时字符串需要转为字节,然后计算字节表示的double值。

网友评论