改进datenum到datetime的转换结果

时间:2017-04-03 13:51:07

标签: python datetime

我必须将MATLAB的datenum转换为Python的日期时间(例如,2010-11-04 00:03:50.209589)。 datenum以毫秒为单位,日期必须为2010-11-04 00:00:00至2011-06-11 00:00:00。

以下代码如下:

matlab_datenum = 6.365057116950260162e+10
python_datetime = datetime.datetime.fromtimestamp(matlab_datenum / 1e3)
print (python_datetime)

结果是:1972-01-07 16:42:51.169503

结果错误,因为日期必须是2010-11-04至2011-06-11。

你知道如何纠正结果吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

Matlab文档中的datenum页面指出:

  

datenum函数创建一个数字数组,表示每个时间点为从0000年1月0日起的天数。

Python的datetime模块页面为fromtimestamp声明了以下内容:

  

返回与POSIX时间戳对应的本地日期   这是1970年1月1日00:00:00

这两个函数从不同的起点开始计算并使用不同的单位(天和秒),因此两个日期之间存在差异。