将mm / dd / yyyy转换为可用于datenum MATLAB的形式

时间:2014-01-14 23:24:07

标签: matlab datetime date-format

我想将格式的日期列从mm / dd / yyyy(它们以4/10/2007格式,或两位数月份,2007年10月10日)格式转换为yyyy-mm -dd,并绘制它。所以我需要将mm / dd / yyyy变成序列号。

当日期列已经是yyyy-mm-dd格式时,以下代码有效:

DateString = PM25data(:,11); % Pull out dates
    formatIn = 'yyyy-mm-dd';
    x1 = datenum(DateString,formatIn); % Convert to datnum

但是,由于这里的日期格式是mm / dd / yyyy(例如,2007年12月12日),我无法使用上述格式来处理错误

DATENUM failed.

Caused by:
    Error using dtstr2dtnummx
    Failed on converting date string to
    date number.

我也试过这段代码:

DateString = PM25data(2:end,1);
    formatOut = 'yyyy-mm-dd';
    x4 = datenum(DateString, formatOut); % Convert to datnum

但是它运行了这个错误:

Cannot convert input into specified date
string.
DATENUM failed.

在这种情况下如何让datenum工作?

1 个答案:

答案 0 :(得分:2)

格式'mm/dd/yyyy'只是datenum中的格式23。所以:

>> string = '4/12/2007';
>> datenum(string,23)
ans =
      733144

或明确定义格式:

>> string = '4/12/2007';
>> datenum(string,'mm/dd/yyyy')
ans =
      733144