从二进制获取日期时间

时间:2012-05-31 03:03:21

标签: python datetime binary

我希望以1/1/2000的形式获得日期和时间。我正在制作的程序从存储信息表的压缩文档中读取。程序到达日期时间单元格并退出

  • 946652400 as int
  • 或11110000110001000110110000111000 as binary

这应该被解释为Fri Dec 31 15:00:00 UTC 1999,我希望它显示为1/1/2000。我可以使用python中的某种形式的方法吗?我也可以将此信息显示为12/31/1999。如果没有,有人可以解释如何从上面的例子创建这个吗?

谢谢!

2 个答案:

答案 0 :(得分:5)

使用datetime:

>>> import datetime
>>> datetime.datetime.fromtimestamp(946652400)
datetime.datetime(2000, 1, 1, 0, 0)

时区很乱,特别是如果你不得不担心未来。 但是如果您只是处理过去,您可以始终应用静态偏移量来将值调整到所需的时区。

您提供的值已经是1/1/2000,如果您知道适当的偏移量,可以将其调整回UTC。

>>> dt = datetime.datetime.fromtimestamp(946652400)
>>> OFFSET = datetime.timedelta(hours=-9)
>>> adjusted_dt = dt + OFFSET
datetime.datetime(1999, 12, 31, 15, 0)

答案 1 :(得分:3)

import time
time_struct = time.gmtime(946652400)
print time.strftime('%d/%m/%Y', time_struct)

时间模块是stdlib的一部分:记录here 这是一个table,显示您可以在%m中使用的strftime格式指令。