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

时间:2017-09-26 19:49:17

标签: string matlab date

如何转换A

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

到yyyyMMdd类型的日期值:

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

2 个答案:

答案 0 :(得分:3)

如果您使用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

答案 1 :(得分:3)

您可以从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]).';