Main Content

表示 MATLAB 中的日期时间

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

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

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

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

t.Day = 27:28
t = 

   27-Jun-2014 06:00:00   28-Jun-2014 07:00:00

通过更改数组的 Format 属性,可更改其显示格式。下面的格式没有显示任何时间分量。但日期时间数组中的值不会发生任何变化。

t.Format = 'MMM dd, yyyy'
t = 
   Jun 27, 2014   Jun 28, 2014

如果用一个 datetime 数组减另一个,结果是以固定长度为单位的 duration 数组。

t2 = datetime(2014,6,29,6,30,45)
t2 = 

   29-Jun-2014 06:30:45
d = t2 - t
d = 

   48:30:45   23:30:45

默认情况下,duration 数组按照“时:分:秒”的格式显示。通过更改数组的 Format 属性,可更改持续时间的显示格式。您可以使用单一单位显示持续时间的值,例如小时数。

d.Format = 'h'
d = 

   48.512 hrs   23.512 hrs

您可以使用 secondsminuteshoursdaysyears 函数创建单一单位的持续时间。例如,创建 2 天的持续时间,其中每天都是 24 小时整。

d = days(2)
d = 
   2 days

您也可以按可变长度的单一单位创建日历持续时间。例如,一个月可能为 28、29、30 或 31 天。指定 2 个月的日历持续时间。

L = calmonths(2)
L = 
    2mo

您还可以使用 caldayscalweekscalquarterscalyears 函数按其他单位指定日历持续时间。

添加一定的日历月数和日历天数。天数与月数仍然是分开的,这是因为月中的天数不是固定的,只有您向某一特定的日期时间添加了日历持续时间后才能确定。

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

将日历持续时间与日期时间值相加以计算新的日期。

t2 = t + calmonths(2) + caldays(35)
t2 = 

   Oct 01, 2014   Oct 02, 2014

t2 也是一个 datetime 数组。

whos t2
  Name      Size            Bytes  Class       Attributes

  t2        1x2               161  datetime      

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

  • 使用 datetime 数据类型表示时间点。
    例如:2014 年 6 月 18 日(星期三)10:00:00

  • 使用 duration 数据类型表示以固定长度单位计算的一段时间或持续时间。使用 duration 数据类型时,1 天始终等于 24 小时,1 年始终等于 365.2425 天。
    例如:72 小时 10 分钟

  • 使用 calendarDuration 数据类型表示以可变长度单位计算的一段时间或持续时间。
    示例:1 个月(可能为 28、29、30 或 31 天)。
    calendarDuration 数据类型还考虑了夏令时更改和闰年,因此 1 天可能大于或小于 24 小时,1 年可能有 365 或 366 天。

另请参阅

| |