Epoch time conversion using datetime function
82 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hello i am trying to convert epoch time to date time using following command
datetime(1653128376288, 'convertfrom', 'posixtime', 'Format', 'MM/dd/yyyy HH:mm:ss.SSS','TimeZone','Europe/Zurich') and
the answer comes to be 07/22/54355 08:44:48.000 which is obviously wrong,
however if i use an online tool (see below) than it gives me the correct answer. Can anyone help me to find what wrong? i need to convert an array of 30000 rows. thanx
0 Commenti
Risposta accettata
Stephen23
il 5 Lug 2022
Modificato: Stephen23
il 5 Lug 2022
Your value is in milliseconds (not seconds, as is standard for Unix time), so either divide the value by 1000:
opt = {'Format', 'eeee dd MM yyyy HH:mm:ss.SSS'};
datetime(1650000000000/1000, opt{:}, 'convertfrom','posixtime')
or specify the 'tickspersecond' option:
datetime(1650000000000, opt{:}, 'convertfrom', 'epochtime','Epoch','1-Jan-1970','TicksPerSecond',1000)
0 Commenti
Più risposte (1)
Karim
il 5 Lug 2022
One approach would be to add the "ticks per second" parameter, in your case set it to 1000:
EpochVal = 1650000000000;
% convert epoch time
MyTime = datetime(EpochVal,'ConvertFrom','epochtime','Epoch','1970-01-01','TicksPerSecond',1000)
% convert to the required format
MyFormattedTime = datetime(MyTime,'Format','MM/dd/yyyy HH:mm:ss.SSS','TimeZone','Europe/Zurich')
0 Commenti
Vedere anche
Categorie
Scopri di più su Calendar in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!