Python datetime到Matlab datenum

2024-04-26 12:08:15 发布

您现在位置:Python中文网/ 问答频道 /正文

如何将Pythondatetime转换为Matlabdatetnum


Tags: pythondatetimematlabdatetnum
3条回答

根据bavaza的回答-现在包括微秒:

def datetime2matlabdn(dt):
   mdn = dt + timedelta(days = 366)
   frac_seconds = (dt-datetime.datetime(dt.year,dt.month,dt.day,0,0,0)).seconds / (24.0 * 60.0 * 60.0)
   frac_microseconds = dt.microsecond / (24.0 * 60.0 * 60.0 * 1000000.0)
   return mdn.toordinal() + frac_seconds + frac_microseconds

要将datetime序列化为字符串,可以在Python端使用strftime:

import datetime
d = datetime.datetime.now()
print (d.strftime("%d-%b-%Y %H:%M:%S"))

根据MatLab docsdatenum知道如何解析它。

把做过的事情颠倒过来,我得到:

def datetime2matlabdn(dt):
   ord = dt.toordinal()
   mdn = dt + timedelta(days = 366)
   frac = (dt-datetime(dt.year,dt.month,dt.day,0,0,0)).seconds / (24.0 * 60.0 * 60.0)
   return mdn.toordinal() + frac

也应该和timedelta.microseconds一起工作。

空闲时:

n = datetime.now()

datetime.datetime(2012, 2, 13, 6, 56, 2, 619000)

datetime2matlabdn(n)

734912.28891203704

在Matlab中:

>> datestr(734912.28891203704)

ans = 13-Feb-2012 06:56:02

相关问题 更多 >