【问题标题】:Convert mm/dd/yyyy to a form usable for datenum MATLAB将 mm/dd/yyyy 转换为可用于 datenum MATLAB 的形式
【发布时间】:2014-01-14 23:24:06
【问题描述】:

我想将单元格中的一列日期从 mm/dd/yyyy 格式(它们的格式为 2007 年 4 月 10 日或两位数月份,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 年 4 月 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 工作?

【问题讨论】:

  • 你试过了吗:datenum(DateString, 'mm/dd/yyyy')
  • 哦,那行得通。谢谢。我很确定我尝试将 formatIn 设置为 'mm/dd/yyyy' 但没有成功,但我想我在尝试时做错了。

标签: matlab datetime date-format


【解决方案1】:

'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

【讨论】:

猜你喜欢
  • 2017-05-18
  • 1970-01-01
  • 2016-06-21
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多