Python日期时间到Matlab datenum

时间:2012-01-08 08:57:20

标签: python matlab datetime

如何将Python datetime转换为Matlab datetnum

3 个答案:

答案 0 :(得分:7)

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

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

根据MatLab docs datenum知道如何解析它。

答案 1 :(得分:6)

基于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

答案 2 :(得分:5)

扭转所做的事情here,我得到了:

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一起使用。

在IDLE:

  

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