主要内容

表示 MATLAB 中的日期和时间

存储日期和时间信息的主要方法是使用 datetime 数组,该数组支持算术运算、排序、比较、绘图和格式化显示方式。算术差异的结果在 duration 数组中返回;如果使用基于日历的函数,则在 calendarDuration 数组中返回。

例如,创建一个 datetime 数组表示以下两个日期:2025 年 6 月 28 日上午 6 点和 2025 年 6 月 28 日上午 7 点。为此 datetime 值指定年、月、日、时、分和秒分量的数值。

t = datetime(2014,6,28,6:7,0,0)
t = 1×2 datetime
   28-Jun-2014 06:00:00   28-Jun-2014 07:00:00

您可以通过为 datetime 数组的属性分配新的值,更改日期或时间分量的值。例如,通过为 Day 属性分配新的值,更改每个值的日期。

t.Day = 27:28
t = 1×2 datetime
   27-Jun-2014 06:00:00   28-Jun-2014 07:00:00

通过更改数组的 Format 属性,可更改其显示格式。例如,指定一种以 ISO 8601 格式表示日期和时间的格式(包括表示毫秒的位数)。当您更改显示格式时,datetime 数组中的值不会更改。

t.Format = "yyyy-MM-dd HH:mm:ss.SSS"
t = 1×2 datetime
   2014-06-27 06:00:00.000   2014-06-28 07:00:00.000

如果用一个 datetime 数组减另一个,将得到一个 duration 数组。duration 数组中的值以固定长度 24 小时制日期为单位表示时间长度。也就是说,duration1 等于一天。duration 数组的默认显示格式是 hh:mm:ss,这意味着长度为一天的 duration 值显示为 24:00:00

t2 = datetime(2014,6,28,6:7,0:1,0)
t2 = 1×2 datetime
   28-Jun-2014 06:00:00   28-Jun-2014 07:01:00

d = t2 - t
d = 1×2 duration
   24:00:00   00:01:00

您可以通过更改 duration 数组的 Format 属性来更改其显示格式。时间长度保持不变,但您可以使用不同时间单位显示它们。例如,将显示格式更改为秒。

d.Format = "s"
d = 1×2 duration
   86400 sec      60 sec

您可以通过使用 secondsminuteshoursdaysyears 函数,以指定的时间单位创建时间长度的 duration 数组。这些函数还会将显示格式设置为匹配的时间单位。例如,使用 days 函数创建一个表示 2.5 天的 duration 值,其中每天为整整 24 小时。显示格式自动设置为天。

d = days(2.5)
d = duration
   2.5 days

您也可以创建 calendarDuration 数组。与 duration 数组一样,calendarDuration 数组表示时间长度。但是,calendarDuration 数组不表示固定的时间长度,而是表示可变长度的采用日历单位的时间。例如,一个日历月可以是 28、29、30 或 31 天,具体取决于指定的月份。对于涉及日历日、月、季度和年的 datetime 数组的计算,请使用 calendarDuration 数组。

要以指定的时间单位创建 calendarDuration 数组,请使用 caldayscalweekscalmonthscalquarterscalyears 函数。例如,指定一个表示两个月的 calendarDuration 值。

L = calmonths(2)
L = calendarDuration
   2mo

添加一定的日历月数和日历天数。天数与月数仍然是分开的,这是因为月中的天数不是固定的,只有您向某一特定 datetime 数组添加了 calendarDuration 值或从 datetime 数组中减去该值后才能确定。

L = calmonths(2) + caldays(35)
L = calendarDuration
   2mo 35d

calendarDuration 添加到 datetime 数组以计算新的日期和时间。运算结果是另一个 datetime 数组,其中 10 月 2 日比 6 月 28 日晚 2 个月零 35 天。

t3 = t2 + L
t3 = 1×2 datetime
   02-Oct-2014 06:00:00   02-Oct-2014 07:01:00

总的说来,表示日期和时间的方式有多种,MATLAB® 为每种方法提供了一个数据类型:

  • 要表示时间点,请使用 datetime 数据类型。例如,使用具有数值或文本输入的 datetime 表示 2014 年 6 月 18 日星期三 10:00:00。

    • datetime(2014,6,18,10,0,0)

    • datetime("2014-06-18 10:00:00")

  • 要以固定长度的单位表示时间长度,请使用 duration 数据类型。使用 duration 数据类型时,1 天始终等于 24 小时,1 年始终等于 365.2425 天。例如,使用 hoursminutes 表示 72 小时 10 分钟。

    • hours(72) + minutes(10)

  • 要以可变长度的单位表示日历时间长度,请使用 calendarDuration 数据类型。calendarDuration 数据类型还考虑了夏令时更改和闰年,因此一个日历日可能大于或小于 24 小时,一个日历年可能有 365 或 366 天。例如,使用 calmonths 表示一个日历月。

    • calmonths(1)

另请参阅

| |

主题