表示 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
您可以使用 seconds
、minutes
、hours
、days
或 years
函数创建单一单位的持续时间。例如,创建 2 天的持续时间,其中每天都是 24 小时整。
d = days(2)
d = 2 days
您也可以按可变长度的单一单位创建日历持续时间。例如,一个月可能为 28、29、30 或 31 天。指定 2 个月的日历持续时间。
L = calmonths(2)
L = 2mo
您还可以使用 caldays
、calweeks
、calquarters
和 calyears
函数按其他单位指定日历持续时间。
添加一定的日历月数和日历天数。天数与月数仍然是分开的,这是因为月中的天数不是固定的,只有您向某一特定的日期时间添加了日历持续时间后才能确定。
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 天。