为什么datetime()输出中的4天对应于Matlab中的1个月和datestr()输出中的4天?

为什么datetime()输出中的4天对应于Matlab中的1个月和datestr()输出中的4天?,matlab,date,Matlab,Date,我在Matlab2019a中遇到了以下问题 >> datestr(datetime('20190927','InputFormat','yyyyMMdd')-datetime('20190923','InputFormat','yyyyMMdd'),'yyyymmdd') ans = '00000104' 为什么答案是1个月4天?应该是零月四日吗 编辑: 我意识到datetime数组上的算法会创建持续时间数组。但我不知道在对datetime数组进行算术运算后如何设置dura

我在Matlab2019a中遇到了以下问题

>> datestr(datetime('20190927','InputFormat','yyyyMMdd')-datetime('20190923','InputFormat','yyyyMMdd'),'yyyymmdd')
ans =
    '00000104'
为什么答案是1个月4天?应该是零月四日吗

编辑:

我意识到datetime数组上的算法会创建持续时间数组。但我不知道在对datetime数组进行算术运算后如何设置duration数组的格式,也不知道如何以无格式的方式检索duration数据

Datetime算法是我需要的。所以我问这个问题,这样我就可以毫无疑问地进行日期时间算术。

d=datetime('20190927','InputFormat','yyyyMMdd')-datetime('20190923','InputFormat','yyyyMMdd'))
返回:

d=
期间
96:00:00
也就是说,96小时。将其转换为日期字符串将导致1月4日。如果你从0年的午夜开始计算小时数,96个小时后你就到了1月4日。没有第0个月了

你能做的是:

d=持续时间(d,'Format','dd:hh:mm:ss')
返回:

d=
期间
04:00:00:00
您还可以执行以下操作:

d=天(d)
返回:

d=
4.

@O'Neil:它们在两个函数中代表不同的东西。这是我在MATLAB文档中读到的最有效的东西之一。我也注意到了这个
mm
/
mm
的区别,结果证明这是故意的。难以置信@克里斯卢恩戈:谢谢你的加入。我不完全明白。如果0000年01月04日代表1月4日,为什么将年份归零为0000?这是Matlab中默认的第0年吗?