我有两个问题:
x
中,格式为“datetime(Y,M,D,H,MI,S,MS)”的日期时间值。 display(x)
命令显示'00:00:00'。然而'if条件'显示'收到好评!'这意味着x的实际值大于0而不是display(x)命令显示的'00:00:00'。请建议我如何显示x
的完整值,最高可达毫秒或微秒。 send = datetime(2016,08,31,06,01,00,00);
receive=datetime(2016,08,31,06,01,00,100);
x=receive-send;
display(x);
if (x>0)
disp('Well received!')
else
disp('Late!')
end
答案 0 :(得分:1)
您的第一个问题的解决方案是,您可以将datetime-variable转换为格式化字符串:
disp(datestr(x,'HH:MM:SS:FFF'));
这为您提供输出00:00:00:100
,因为F
是毫秒的符号标识符。
此外,似乎datetime
不支持毫秒。在这种情况下,您应该使用MATLAB序列号:
答案 1 :(得分:0)
示例中创建的变量x
是duration
对象。您可以通过设置Format
属性来指定毫秒的显示(以及较小的秒数小数)。
>> x.Format = 'hh:mm:ss.SSS';
>> display(x);
x = 00:00:00.100
当您询问将'0000,00,00,00,00,00,200'保存为日期时间值时,这可能也是您想要的。它不是真正的日期和时间,而是持续时间,可以使用duration
构造函数创建。
>> duration(00,00,00,200,'Format','hh:mm:ss.SSS')
ans =
00:00:00.200
作用于这些duration
对象的大多数操作都会按预期工作,例如与>
运算符进行比较:
>> x > duration(00,00,00,200)
ans =
0