日期时间转换:数字到日期时间

时间:2015-06-18 12:51:38

标签: matlab

我有约会和时间数字格式的间隔 1小时(3600秒),例如0,3600,7200,10800,14400,18000等。 我有开始日期和时间,例如0对应于2005/06/01 01:00 in yyyy / mm / dd HH:MM'格式。

我正在将此数据写入Excel文件,所以我正在寻找可以将以小时(以秒为单位)给出的时间转换为日期时间(2005/06/01 01:00,2005 / 06 / 01 02:00等)在写入excel文件之前。

我已经探索过' datenum'和' datestr'功能,但它们没有用,因为我不能给它们定制的开始时间,即(0对应于2005/06/01 01:00)。 如果有人可以帮助我指出正确的方向,可能就是这样。

tempMatrix = [NrID time_inSec ff X Y];
tempMatrix_dataCell=num2cell(tempMatrix);
col_header={'NrID','Time','ff','X','Y'};
data_for_xls_file=[col_header; tempMatrix_dataCell];
xlswrite('My_file.xls',data_for_xls_file);

time_inSec是值为0,3600,7200,10800等的列,需要转换。

当我使用 datenum 时,它返回7.3246e + 05所以当我添加3600以获得2005/06/01 02:00并将其传递给 datestr 时,它将返回2015 / 04/10 01:00

 temp_time = datenum('2005/06/01 01:00','yyyy/mm/dd HH:MM')

1 个答案:

答案 0 :(得分:0)

这适用于给定的开始时间:

startTime = datenum('2005/06/01 01:00', 'yyyy/mm/dd HH:MM'); % Define start time.
currentTime = datenum('2005/06/01 02:00', 'yyyy/mm/dd HH:MM'); % Current time.
timePassedHours = (currentTime - startTime) * 24; % Time that has passed in hours.
display(timePassedHours); % Print the output.