from posix to date

39 Ansichten (letzte 30 Tage)
Valeria Leto
Valeria Leto am 4 Mär. 2020
Kommentiert: Valeria Leto am 7 Mär. 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 Kommentare
Guillaume
Guillaume am 4 Mär. 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 am 4 Mär. 2020
it's 1582650648869329937

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 4 Mär. 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 Kommentare
Walter Roberson
Walter Roberson am 5 Mär. 2020
Yup, the complications are to preserve the 17 nanoseconds.
Valeria Leto
Valeria Leto am 7 Mär. 2020
thanks a lot! very kind :)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Dates and Time 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!

Translated by