将分钟转换为适当的日期

时间:2016-06-30 09:51:36

标签: matlab date datetime minute

我有一个525599的向量(X)。每个值代表2010年(365天)的每一分钟。 让我们澄清一下:

X        date
1         1/1/2010 00:01:00
2         1/1/2010 00:02:00
3         1/1/2010 00:03:00
...
525599   31/12/2010 23:58:00
525599   31/12/2010 23:50:00

如何以类似于第二列(DDMMYYYY HH:MM)的格式转换X中的连续数字?

2 个答案:

答案 0 :(得分:1)

如果你有MATLAB版本2014b或更高版本,那么最简单和最好的选择是使用新的datetime数据类型:

datetime('2010-01-01') + minutes(X)

在旧版本上使用:

datestr(datenum('2010-01-01') + X/(24*60))

答案 1 :(得分:0)

另一种方法是将您的时间用作Epoch,然后将其转换为日期时间:

epoch_mil = 1262304000000 + X*1000*60; % 2010/01/01 00:00:00.000 + your Minutes 
reference = datenum('1970', 'yyyy'); 
time = reference + epoch_mil / 8.64e7;
time_as_string = datestr(time, 'yyyy/mm/dd HH:MM:SS')


>> X = 1:4;
time_as_string =

2010/01/01 00:01:00
2010/01/01 00:02:00
2010/01/01 00:03:00
2010/01/01 00:04:00