我正在使用Python中的.sav(SPSS(文件。除了日期时间变量外,在使用PyriadStat(也在使用Pandas时(导入后,所有变量看起来都很好。它们使用Python以浮点类型的指数形式读取。但他们最初的SPSS格式是日期类型的dd-mmm-yy(例如,2021年2月2日(。
这就是日期变量看起来像的样子
1.383160e+10
有没有办法使用Python将这种格式转换为日期时间?
我已经尝试了使用日期时间模块和时间模块的各种方法。但我得到的是2408 的日期
# Here I'm using the float from the first row in the dataframe
time.gmtime(13831603200)
结果
time.struct_time(tm_year=2408,tm_mon=4,tm_mday=22,tm_hour=0,tm_min=0,tm_sec=0,tm_wday=1,tm_yday=113,tm_isdst=0(
当我使用日期时间模块时:
python_date = datetime.fromtimestamp(13831603200).strftime('%d-%b-%Y, %H:%M:%S')
print(python_date)
2008年4月22日00:00:00
[使用Python时日期时间变量(Vdatesub(的显示方式][1][1] :https://i.stack.imgur.com/I7yza.png
这是在这两篇文章(一篇Python,一篇R(下回答的:
转换';自1582年10月14日以来的秒;到Python日期时间
将SPSS文件读取到R中,日期的数据格式错误,并生成更多变量
简而言之:日期存储为1582年10月14日起的秒数,而Python从大纪元日期(1970年1月1日(开始。
您需要计算1582-10-14和1970-01-01之间的秒数,以根据以下帖子调整时间戳值:
平台localtime((/gmtime((函数的时间戳超出范围
(可能为12218515200秒(