matlab 如何将日期格式写成yyyymmddhhmmss形式

如题,我现在有一个计算日期的函数,返回值举例如下:
year=2012
month=1
day=1
hour=3
min=6
sec=1

我想将其整体写成这种格式20120101030301,该如何写呢?主要就是后面不满两位的变量可以自动在前面加零
写错了,应该是20120101030601

MATLAB中将日期时间转换为字符串的函数是datestr,但并不支持你的这种格式。

比较接近的是格式30(ISO 8601),不过多了一个字符“T”,可以给替换掉:

>> year=2012;month=1;day=1;hour=3;min=6;sec=1;
>> strrep(datestr(datenum(year,month,day,hour,min,sec),30),'T','')
ans =
20120101030601

当然,也可以直接用sprintf函数来写:

>> sprintf('%i%02i%02i%02i%02i%02i',year,month,day,hour,min,sec)
ans =
20120101030601

温馨提示:答案为网友推荐,仅供参考