matlab中的日期时间格式

时间:2012-10-26 14:42:33

标签: matlab datetime

我有一些在excel中给我的数据,时间格式相当混乱。第一列是DateTime,但是HH:MM不正确,第二列是当天正确的小时HH:MM:

time = {'01/01/2000 00:00',num2str(2300);
    '01/01/2000 00:00',num2str(2400);
    '01/01/2000 00:00',num2str(10);
    '01/01/2000 00:00',num2str(100)};

然而,当时间超过午夜时,而不是00:10,时间是10,01:00是100.我怎么能改变这些格式?即从上面的例子中我希望结果是:

time = {'01/01/2000 23:00';
    '01/01/2000 24:00';
    '01/01/2000 00:10';
    '01/01/2000 01:00'};

我怎么能实现这个目标?

1 个答案:

答案 0 :(得分:3)

在MATLAB中使用sprintf,您可以使用字段宽度说明符:

sprintf arguments

,其中

  

场宽:   要打印的最小字符数。可以是数字,也可以是星号(*)来引用输入列表中的参数。例如,输入列表('%12d',intmax)等效于('%* d',12,intmax)。

因此,您的时间应该看起来像“XX:XX”,如果缺少并添加冒号,则sprintf添加前导零。

感谢@Junuxx提供的确切命令:sprintf('%02i:%02i', hours, minutes)

要分开小时和分钟,你显然会花时间%100来得分和整数除以100得到小时。

从那里开始,您只需strcat或连接["a" "b"]两列即可获得所需的结果。