Matlab:如何计算两个日期字符串之间的秒数?

Fis*_*ian 1 matlab

我有以下格式的两个日期:

'16:40:07.875'

'16:41:05.875'
Run Code Online (Sandbox Code Playgroud)

现在我尝试使用Matlab计算这两个日期字符串之间的差异,以秒为单位.我认为最好的方法是首先将日期字符串解析为日期类型,但我在Matlab中找不到任何日期类型.有没有?是否有预先构建的功能,然后我可以使用它来计算差异?

Sch*_*sch 6

这是你如何做到的:

T1 = '16:40:07.875';
T2 = '16:41:05.875';

T3 = clock;

str1 = [num2str(T3(1:3)),' ',T1];
str2 = [num2str(T3(1:3)),' ',T2];

t1 = datevec(str1,'yyyy mm dd HH:MM:SS.FFF')
t2 = datevec(str2,'yyyy mm dd HH:MM:SS.FFF')

Dt = etime(t2,t1);
Run Code Online (Sandbox Code Playgroud)

在这种情况下Dt58.

一些解释:

  • 首先,我使用clock今天的日期字符串作为年/月/日输入的假人
  • 其次,我datevec用来获得正确的日期矢量格式.注意SS.FFF解决毫秒.
  • 第三,etime应用于计算两个日期向量之间的差值.

编辑
As Oleg Komarov指出,这就足够了:

t1 = datevec(T1,'HH:MM:SS.FFF')
t2 = datevec(T2,'HH:MM:SS.FFF')

Dt = etime(t2,t1);
Run Code Online (Sandbox Code Playgroud)