matlab中把字符型日期2009-06-01转成数字2009,06和01,并保留月和日第一位的0

来源:百度知道 编辑:UC知道 时间:2024/06/23 12:39:29
matlab中,要把把字符型日期20090601转成数字型的2009,06和01,我把年月日拆开,然后用str2num,出来的结果是2009,6和1,月和日前面的0不见了,怎么才能保留0呢?因为我想在输出的时候格式统一?

还听说sscanf可以字符转成数字,并且格式输出,我用sscanf('06','%2d'),结果还是6,而不是06.

>> datestr([2009 6 1 0 0 0],'yyyy-mm-dd') % 直接输出时间字符串

ans =

2009-06-01

>> fprintf('%4d-%02d-%02d',2009,6,1) % 格式输出到标准控制台(屏幕)
2009-06-01
>> mstr=num2str(6,'%02d') % 数值转换成字符串,可以加格式

mstr =

06

>> daystr=sprintf('%02d',1) % 格式输出到字符串

daystr =

01

% 后面几个格式输出关键在%02d上,2前面的0表示不足2位的时候用0占位。
% 另外,作为数值,其实有没有前面的0是没意义的,那个0只是输出显示时候用的,实质上就是把数值转换成字符串,再显示到屏幕上。