代码之家  ›  专栏  ›  技术社区  ›  Argyll

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

  •  0
  • Argyll  · 技术社区  · 6 年前

    我在matlab2019a中遇到了以下问题。

    >> datestr(datetime('20190927','InputFormat','yyyyMMdd')-datetime('20190923','InputFormat','yyyyMMdd'),'yyyymmdd')
    ans =
        '00000104'
    

    为什么答案是1个月4天?不是应该是零个月4天吗?

    编辑:

    可以

    0 回复  |  直到 6 年前
        1
  •  1
  •   Cris Luengo    6 年前
    d = datetime('20190927','InputFormat','yyyyMMdd')-datetime('20190923','InputFormat','yyyyMMdd')
    

    d = 
      duration
       96:00:00
    

    也就是说,96小时。将此字符串中的1月4日转换为结果。如果你从第0年的午夜开始计算小时数,96小时后你将在1月4日结束。没有第0个月。

    你能做的是:

    d = duration(d,'Format','dd:hh:mm:ss')
    

    d = 
      duration
       04:00:00:00
    

    您还可以执行以下操作:

    d = days(d)
    

    返回:

    d =
         4
    
    推荐文章