Epoch time conversion using datetime function
75 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Akzeptierte Antwort
Stephen23
am 5 Jul. 2022
Bearbeitet: Stephen23
am 5 Jul. 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 Kommentare
Weitere Antworten (1)
Karim
am 5 Jul. 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 Kommentare
Siehe auch
Kategorien
Mehr zu Calendar finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!