Supongamos, se empieza con un vector time_unix
, entonces:
>> time_unix = 1339116554872; % example time
>> time_reference = datenum('1970', 'yyyy');
>> time_matlab = time_reference + time_unix/8.64e7;
>> time_matlab_string = datestr(time_matlab, 'yyyymmdd HH:MM:SS.FFF')
time_matlab_string =
20120608 00:49:14.872
Notas:
1) Véase la definición del tiempo de MATLAB.
2) 8.64e7 es el número de milisegundos en un día.
3) Matlab no aplica ningún cambio de zona horaria, por lo que el resultado es la misma hora UTC.
4) Ejemplo para la transformación hacia atrás:
>> matlab_time = now;
>> unix_time = round(8.64e7 * (matlab_time - datenum('1970', 'yyyy')))
unix_time =
1339118367664
En resumen, aquí hay dos funciones:
function tm = unix2matlab(tu)
tm = datenum('1970', 'yyyy') + tu/864e5;
end
function tu = matlab2unix(tm)
tu = round(864e5 * (tm - datenum('1970', 'yyyy')));
end
El tiempo de MATLAB aquí es numérico. Siempre puede convertirlo a cadena usando fechastr()
Probablemente esté buscando la función 'datestr'. –