获取此格式的日期时间并转换为4字节十六进制

时间:2012-06-03 04:23:28

标签: python datetime hex

我有这种格式的日期时间。

1999-12-31 09:00:00

来自十六进制值:

F0C46C38

如何将上述格式的日期时间值变为4字节十六进制? 我上面发布的值是彼此的补充。第二个代码块中的十六进制相反。

谢谢!

2 个答案:

答案 0 :(得分:4)

386CC4F0(hex)== 946652400(dec)
946652400是1999-12-31 15:00:00 GMT的Unix时间戳。

import time
print hex(int(time.mktime(time.strptime('1999-12-31 15:00:00', '%Y-%m-%d %H:%M:%S'))) - time.timezone)

答案 1 :(得分:1)

#!/usr/bin/env python3
import binascii
import struct
from datetime import datetime

# convert time string into datetime object
dt = datetime.strptime('1999-12-31 09:00:00', '%Y-%m-%d %H:%M:%S')

# get seconds since Epoch
timestamp = dt.timestamp() # assume dt is a local time

# print the timestamp as 4 byte hex (little-endian order)
print(binascii.hexlify(struct.pack('<I', round(timestamp))))
# -> b'f0c46c38'