Supponiamo, si inizia con un vettore time_unix
, quindi:
>> 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
Note:
1) Si veda la definizione del tempo di MATLAB.
2) 8.64e7 è il numero di millisecondi in un giorno.
3) Matlab non applica spostamenti di fuso orario, quindi il risultato è la stessa ora UTC.
4) Esempio di trasformazione all'indietro:
>> matlab_time = now;
>> unix_time = round(8.64e7 * (matlab_time - datenum('1970', 'yyyy')))
unix_time =
1339118367664
In sintesi, qui sono due funzioni:
function tm = unix2matlab(tu)
tm = datenum('1970', 'yyyy') + tu/864e5;
end
function tu = matlab2unix(tm)
tu = round(864e5 * (tm - datenum('1970', 'yyyy')));
end
Il tempo MATLAB qui è numerico. Puoi sempre convertirlo in stringa usando datestr()
Probabilmente stai cercando la funzione 'datestr'. –