2つのdatetim​eの時間差を、秒で取​得する方法

39 visualizaciones (últimos 30 días)
koji fukumoto
koji fukumoto el 16 de Oct. de 2018
Comentada: koji fukumoto el 16 de Oct. de 2018
2つのdatetimeの時間差を「秒」で取得する方法についてご相談させてください。 例えば
datetime1 = datetime(2020,08,16,15,00,00,000);
datetime2 = datetime(2021,10,16,15,00,01,234);
ans = between(datetime1, datetime2);
というようなコードだと、calendarDuration型で「1y 2mo 0h 0m 1.234s」という結果を得られます。
これでは、splitして計算するにしても閏年や「大の月・小の月」を考慮することができません。
datetimeを「1900年1月1日からの経過秒」に変換するなどができれば簡単に求められるのですが、 調べてみてもたどり着くことができませんでした。
MATLABでそのようなことはできますでしょうか?
(ちなみに、求める精度はミリ秒です)
よろしくお願いいたします。

Respuesta aceptada

koji fukumoto
koji fukumoto el 16 de Oct. de 2018
自己レスになりますが、posixtimeを使ってできそうです。
datetime1 = datetime(2020,08,16,15,00,00,000);
datetime2 = datetime(2021,10,16,15,00,01,234);
ans = sprintf("%.3f", posixtime(datetime2) - posixtime(datetime1));
% 結果:ans = "36806401.234"

Más respuestas (1)

Kazuya
Kazuya el 16 de Oct. de 2018
seconds(datetime2-datetime1)
ans =
3.6806e+07
でも行けますね。
format long
seconds(datetime2-datetime1)
ans =
3.680640123400000e+07
  1 comentario
koji fukumoto
koji fukumoto el 16 de Oct. de 2018
Kazuya様
確かにできますね! 勉強になりました、ありがとうございました。
seconds(datetime2-datetime1)
の方がシンプルで可読性も高そうですが、わずかに計算速度が遅いんですかね。。。
どちらの方法で実装するか、よく検討してみます。

Iniciar sesión para comentar.

Categorías

Más información sobre 日付と時刻 en Help Center y File Exchange.

Productos


Versión

R2018a

Community Treasure Hunt

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

Start Hunting!