Duration in double between two datenum

17 次查看(过去 30 天)
I have two dates given in text format, I want to have the real duration in seconds between the two values.
The answer is -24, and I can do it parsing the strings. But does MATLAB have a function to do it nice and quick?
If I do the following the answer is not a -24 that I can use as a double:
datenum('2018-09-07 18:36:05.079')-datenum('2018-09-07 18:36:29.079')
I need this time for a Simulink simulation. For example, I might need the duration in seconds between two days.

采纳的回答

Stephen23
Stephen23 2018-9-7
编辑:Stephen23 2018-9-7
To get seconds simply multiply the days by 60*60*24:
>> F = 'yyyy-mm-dd HH:MM:SS.FFF';
>> D = datenum('2018-09-07 18:36:05.079',F)-datenum('2018-09-07 18:36:29.079',F);
>> D*60*60*24
ans = -24.000
  2 个评论
Luis Ruiz
Luis Ruiz 2018-9-10
编辑:Luis Ruiz 2018-9-10
This one seems to be the right answer, but then, does it mean that operations between two datenum values are always in days?
Stephen23
Stephen23 2018-9-10
@Luis Ruiz: yes, datenum always returns days. But the conversion to seconds is trivial, as my answer shows.

请先登录,再进行评论。

更多回答(2 个)

Peter Perkins
Peter Perkins 2018-9-7
If possible, don't use datenum. Use datetimes:
>> fmt = 'yyyy-MM-dd HH:mm:ss.SSS';
>> dur = datetime('2018-09-07 18:36:05.079','Format',fmt) - datetime('2018-09-07 18:36:29.079','Format',fmt)
dur =
duration
-00:00:24
>> dur.Format = 's'
dur =
duration
-24 sec
  3 个评论
Peter Perkins
Peter Perkins 2018-9-12
As James says, you can convert, but the point of duration is that you may not need a number. duration supports all kinds of time arithmetic. Hard to know if that's possible in your case.

请先登录,再进行评论。


Image Analyst
Image Analyst 2018-9-7
编辑:Image Analyst 2018-9-10
Try the etime() function.
t1 = datevec('2018-09-08 18:36:05.079','yyyy-mm-dd HH:MM:SS.FFF')
t2 = datevec('2018-09-07 18:36:29.079','yyyy-mm-dd HH:MM:SS.FFF')
elapsedTime = etime(t1, t2) % Results in seconds.

类别

Help CenterFile Exchange 中查找有关 Dates and Time 的更多信息

标签

产品


版本

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by