如何将数字1转换为日期值20150101(yyyyMMdd)?

问题描述:

我如何转换A如何将数字1转换为日期值20150101(yyyyMMdd)?

A = [ 1 2 3 4 5 ... 731] 

到类型年月日的日期值:

B = [ 20150101 20150102 20150103 20150104 20150105 ... 20161231] 

如果使用datenum找到与20150101相关的数值:

baseDate = datenum('20150101','yyyymmdd'); 

baseDate = 735965 

如果您从中减去1,则可以使用它从datestr生成所有日期:

baseDate = baseDate - 1; 
A = [1:5, 731]; 
datestr(A + baseDate,'yyyymmdd') 

ans = 

20150101 
20150102 
20150103 
20150104 
20150105 
20161231 

您可以A创建date numbers从数组中的值,将其换算成date strings,然后convert these strings to numeric values

B = str2num(datestr(datenum(2015, 1, A), 'yyyymmdd')).'; 

...并为那些谁是厌恶与字符串转换搞乱,这里的一些datevecmatrix multiplication你:

B = (datevec(datenum(2015, 1, A))*[10000; 100; 1; 0; 0; 0]).'; 
+0

笑......我一直觉得有趣的是'2015/01/397'是'2016/02/01'。方便,但很奇怪。 ;) – beaker