Main Content

提取或分配日期时间数组的日期时间分量

此示例演示了从现有日期时间数组中提取日期时间分量的两种方法:访问数组属性或调用函数。然后,示例演示了如何通过修改数组属性来修改日期时间分量。

访问属性以检索日期时间分量

创建一个 datetime 数组。

t = datetime('now') + calyears(0:2) + calmonths(0:2) + hours(20:20:60)
t = 1x3 datetime
   26-Jan-2024 18:21:05   27-Feb-2025 14:21:05   28-Mar-2026 10:21:05

获取数组中每个日期时间的年份值。使用圆点表示法访问 tYear 属性。

t_years = t.Year
t_years = 1×3

        2024        2025        2026

输出 t_years 是一个数值数组。

通过访问 Month 属性获取 t 中每个日期时间的月份值。

t_months = t.Month
t_months = 1×3

     1     2     3

您可以通过分别访问 HourMinuteSecond 属性,检索 t 中每个日期时间的日、时、分和秒分量。

使用函数检索日期时间分量

使用 month 函数获取 t 中每个日期时间的月份数字。使用函数是检索 t 的特定日期或时间分量的替代方法。

m = month(t)
m = 1×3

     1     2     3

使用 month 函数而非 Month 属性获取 t 中每个日期时间的完整月份名称。

m = month(t,'name')
m = 1x3 cell
    {'January'}    {'February'}    {'March'}

您可以通过分别使用 yearquarterweekhourminutesecond 函数,检索 t 中每个日期时间的年、季、周、日、时、分和秒分量。

获取 t 中每个日期时间属于一年中第几周这一数字。

w = week(t)
w = 1×3

     4     9    13

获取多个日期时间分量

使用 ymd 函数获取 t 的年份、月份和日期值,并作为三个单独的数值数组。

[y,m,d] = ymd(t)
y = 1×3

        2024        2025        2026

m = 1×3

     1     2     3

d = 1×3

    26    27    28

使用 hms 函数获取 t 的小时、分钟和秒值,并作为三个单独的数值数组。

[h,m,s] = hms(t)
h = 1×3

    18    14    10

m = 1×3

    21    21    21

s = 1×3

    5.9585    5.9585    5.9585

修改日期时间分量

通过修改某个现有 datetime 数组的属性,将新值赋给该数组中的分量。使用圆点表示法访问特定属性。

t 中所有日期时间值的年份数字更改为 2014。使用圆点表示法修改 Year 属性。

t.Year = 2014
t = 1x3 datetime
   26-Jan-2014 18:21:05   27-Feb-2014 14:21:05   28-Mar-2014 10:21:05

t 中三个日期时间值的月份分别更改为 1 月、2 月和 3 月。您必须将新的值指定为数值数组。

t.Month = [1,2,3]
t = 1x3 datetime
   26-Jan-2014 18:21:05   27-Feb-2014 14:21:05   28-Mar-2014 10:21:05

通过为 TimeZone 属性赋值来设置 t 的时区。

t.TimeZone = 'Europe/Berlin';

更改 t 的显示格式,只显示日期而不显示时间信息。

t.Format = 'dd-MMM-yyyy'
t = 1x3 datetime
   26-Jan-2014   27-Feb-2014   28-Mar-2014

如果您为日期时间分量分配的值超出常规范围,则 MATLAB® 会对分量进行归一化。一个月中日期数字的常规范围是 1 到 31。指定一个超出该范围的日期值。

t.Day = [-1 1 32]
t = 1x3 datetime
   30-Dec-2013   01-Feb-2014   01-Apr-2014

月份和年份数字进行了调整,从而使所有值保持在每个日期分量的常规范围之内。在本例中,2014 年 1 月 -1 日转换为 2013 年 12 月 30 日。

另请参阅

| | |