from posix to date

160 visualizzazioni (ultimi 30 giorni)
Valeria Leto
Valeria Leto il 4 Mar 2020
Commentato: Valeria Leto il 7 Mar 2020
Hi,
I am trying to use this command to convert the time vector t_ne expressed in posix time to a date
d = datetime(t_ne, 'ConvertFrom', 'posixtime')
but I get
datetime
5.0152e+10 CE
where is the problem?
  2 Commenti
Guillaume
Guillaume il 4 Mar 2020
"where is the problem?"
Your input is not a posix time, most likely. What is the value of t_ne?
Valeria Leto
Valeria Leto il 4 Mar 2020
it's 1582650648869329937

Accedi per commentare.

Risposta accettata

Walter Roberson
Walter Roberson il 4 Mar 2020
This is a bit tricky because you are working past double precision accuracy.
t_ne = uint64(1582650648869329937);
NS = 1e9;
right_over = mod(t_ne, NS);
left_over = t_ne - right_over;
d = datetime( double(left_over)/NS, 'convertfrom', 'posixtime', 'Format', 'dd-MMM-uuuu HH:mm:ss.SSSSSSSSS') + seconds(double(right_over)/NS)
  4 Commenti
Walter Roberson
Walter Roberson il 5 Mar 2020
Yup, the complications are to preserve the 17 nanoseconds.
Valeria Leto
Valeria Leto il 7 Mar 2020
thanks a lot! very kind :)

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Dates and Time 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!

Translated by