Epoch time conversion using datetime function
79 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Aditya
el 5 de Jul. de 2022
Respondida: Karim
el 5 de Jul. de 2022
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 comentarios
Respuesta aceptada
Stephen23
el 5 de Jul. de 2022
Editada: Stephen23
el 5 de Jul. de 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 comentarios
Más respuestas (1)
Karim
el 5 de Jul. de 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 comentarios
Ver también
Categorías
Más información sobre Calendar en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!