フィルターのクリア

from posix to date

116 ビュー (過去 30 日間)
Valeria Leto
Valeria Leto 2020 年 3 月 4 日
コメント済み: Valeria Leto 2020 年 3 月 7 日
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 件のコメント
Guillaume
Guillaume 2020 年 3 月 4 日
"where is the problem?"
Your input is not a posix time, most likely. What is the value of t_ne?
Valeria Leto
Valeria Leto 2020 年 3 月 4 日
it's 1582650648869329937

サインインしてコメントする。

採用された回答

Walter Roberson
Walter Roberson 2020 年 3 月 4 日
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 件のコメント
Walter Roberson
Walter Roberson 2020 年 3 月 5 日
Yup, the complications are to preserve the 17 nanoseconds.
Valeria Leto
Valeria Leto 2020 年 3 月 7 日
thanks a lot! very kind :)

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeDates and Time についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by