如何在MATLAB中将date转换为数字

我有date2010年11月11日

并使用该function

=date(年(A1),月(A1),日(A1))

使用Excel将date转换为数字为40189。

我可以使用MATLAB将数字40189再次转换回date吗?

使用DATESTR

>> datestr(40189) ans = 12-Jan-0110 

不幸的是,Excel从1900年1月1日开始计算。 了解如何使用DATENUM将序列date从Matlab转换为Excel

 >> datenum(2010,1,11) ans = 734149 >> datenum(2010,1,11)-40189 ans = 693960 >> datestr(40189+693960) ans = 11-Jan-2010 

换句话说,要转换任何连续的Exceldate,请致电

 datestr(excelSerialDate + 693960) 

编辑

要以mm / dd / yyyy格式获得date,请使用指定的格式调用datestr

 excelSerialDate = 40189; datestr(excelSerialDate + 693960,'mm/dd/yyyy') ans = 01/11/2010 

另外,如果你想摆脱这个月份的前导零,你可以使用REGEXPREP来修复这个问题

 excelSerialDate = 40189; regexprep(datestr(excelSerialDate + 693960,'mm/dd/yyyy'),'^0','') ans = 1/11/2010