我想在Python的二进制文件中存储一个日期时间列表。
编辑:所谓“二进制”是指每种数据类型的最佳数字表示。它的应用是保存由(unix时间戳、纬度、经度、高程)组成的GPS跟踪点,因此整个结构是小端的“Long,float,float,float”,每个值有4个字节。
注意:由于对unix平台的任何影响,我不使用“unix时间戳”,而只是作为一种明确的方式来表示datetime的值。
目前,我正在执行下面的代码,但是除了一些我仍在计算的时区混乱(我的时区是-3),我相信转换成int并返回可能不是正确的方法,因为datetime和datetime64是python/numpy中的本机类型,如果我没有弄错的话。因此,一个datetime64需要8个字节,而不是我用于(长)unix时间戳的4个字节。import datetime
import calendar
import struct
now = datetime.datetime.now()
print now
stamp = calendar.timegm(now.utctimetuple())
print stamp
binarydatetime = struct.pack('
recoverstamp = struct.unpack('
print recoverstamp
recovernow = datetime.datetime.fromtimestamp(recoverstamp)
print recovernow
所以主要的问题是:“这是把原始日期时间转换成二进制并返回的python方法吗?”
传统的问题是:“如果代码中的所有内容都是天真的,为什么我要有时区偏移量?”
谢谢你的阅读!