在Matlab中,当我运行" datenum"功能如下;
datenum(1970, 1, 1);
我得到以下输出:
719529
我试图找到能够给我相同输出的等效函数或脚本。但是,遗憾的是,我无法在互联网上找到足够的解释来做到这一点。
我看过这个教程:https://docs.python.org/2/library/datetime.html,但它没有帮助。
你能告诉我,如何在python中获得相同的输出?
谢谢,
答案 0 :(得分:5)
我会使用datetime模块和toordinal()函数
from datetime import date
print date.toordinal(date(1970,1,1))
719163
要获得你得到的日期,你会使用
print date.toordinal(date(1971,1,2))
719529
或更容易转换
print date.toordinal(date(1970,1,1))+366
719529
我认为日期关闭的原因是因为datenum从0000年1月0日开始计算,这并不是一个有效的日期。您必须通过在年和日中添加一个来抵消开始日期的更改。月份并不重要,因为datenum中的第一个月等于0
答案 1 :(得分:3)
您可以在Python中减去date
个对象:
>>> date(2015, 10, 7) - date(1, 1, 1)
datetime.timedelta(735877)
>>> (date(2015, 10, 7) - date(1, 1, 1)).days
735877
请注意使用对您的需求有用的纪元。
答案 2 :(得分:0)
先前的答案返回一个整数。 MATLAB的datenum不一定返回整数。以下代码重新生成与MATLAB的datenum相同的答案:
-