【问题标题】:Date of 7 days before today今天前 7 天的日期
【发布时间】:2018-07-18 08:04:23
【问题描述】:

我在 MATLAB 中以字符串形式给出当前日期。例如,如果今天是'20180703',我需要 7 个字符串,其中包含:

'20180702'
'20180701'
'20180630' 
'20180629'
'20180628'
'20180627'
'20180626'

【问题讨论】:

标签: string matlab date variables time


【解决方案1】:

简单:

t = datetime('20180703', 'InputFormat', 'yyyyMMdd')
t = t - days(1:7)
datestr(t, 'yyyymmdd') 

编辑。 正如 excaza 所指出的,datetimedatestr 使用不同的输入格式。因此,'MM' 在第一个函数中,'mm' 在第二个函数中。

【讨论】:

    【解决方案2】:

    我会选择类似的东西:

    lastSevenDays = arrayfun(@(offset) datestr(now-offset, 'yyyymmdd'), 1:7, 'UniformOutput', false)
    

    或更多matlaby:

    datestr(now - days(1:7), 'yyyymmdd') 
    

    【讨论】:

    • 最近有变化吗?我正在使用 2017a 并且 mm 是月份。根据ch.mathworks.com/help/matlab/ref/datestr.htmlmm 是月份。
    • 在 2016a 中,'MM' 代表月份。
    • @Evgeny 它取决于所使用的功能。较旧的函数,如datestr,使用'mm',而较新的函数,如datetime,使用'MM'。在声明其输入格式之前,请参阅文档。
    • @excaza,我的错。两个相似的函数使用不同的格式是非常令人意外的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多