在Matlab中,当我运行" datenum "函数时如下;
datenum(1970, 1, 1);
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
719529
Run Code Online (Sandbox Code Playgroud)
我正在尝试找到相同的函数或脚本,它会给我相同的输出.但是,遗憾的是,我无法在互联网上找到足够的解释来做到这一点.
我看过这个教程:https://docs.python.org/2/library/datetime.html,但它没有帮助.
你能告诉我,我如何在python中获得相同的输出?
谢谢,
我将使用datetime模块和toordinal()函数
from datetime import date
print date.toordinal(date(1970,1,1))
719163
Run Code Online (Sandbox Code Playgroud)
要获取日期,您将使用
print date.toordinal(date(1971,1,2))
719529
Run Code Online (Sandbox Code Playgroud)
或者更容易转换
print date.toordinal(date(1970,1,1))+366
719529
Run Code Online (Sandbox Code Playgroud)
我认为该日期不对的原因是由于datenum从1月0日至0000年开始计数,而这不能识别为有效日期。您必须通过在年份和日期中增加一个来抵消开始日期中的更改。该月份无关紧要,因为datetime中的第一个月等于datenum中的0
小智 6
前面的答案返回一个整数。MATLAB 的 datenum 不一定返回整数。以下代码返回与 MATLAB 的 datenum 相同的答案:
from datetime import datetime as dt
def datenum(d):
return 366 + d.toordinal() + (d - dt.fromordinal(d.toordinal())).total_seconds()/(24*60*60)
d = dt.strptime('2019-2-1 12:24','%Y-%m-%d %H:%M')
dn = datenum(d)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9995 次 |
| 最近记录: |