提取或分配日期时间数组的日期时间分量
此示例演示了从现有日期时间数组中提取日期时间分量的两种方法:访问数组属性或调用函数。然后,示例演示了如何通过修改数组属性来修改日期时间分量。
访问属性以检索日期时间分量
创建一个 datetime
数组。
t = datetime('now') + calyears(0:2) + calmonths(0:2) + hours(20:20:60)
t = 1x3 datetime
21-Jul-2024 11:18:58 22-Aug-2025 07:18:58 23-Sep-2026 03:18:58
获取数组中每个日期时间的年份值。使用圆点表示法访问 t
的 Year
属性。
t_years = t.Year
t_years = 1×3
2024 2025 2026
输出 t_years
是一个数值数组。
通过访问 Month
属性获取 t
中每个日期时间的月份值。
t_months = t.Month
t_months = 1×3
7 8 9
您可以通过分别访问 Hour
、Minute
和 Second
属性,检索 t
中每个日期时间的日、时、分和秒分量。
使用函数检索日期时间分量
使用 month
函数获取 t
中每个日期时间的月份数字。使用函数是检索 t
的特定日期或时间分量的替代方法。
m = month(t)
m = 1×3
7 8 9
使用 month
函数而非 Month
属性获取 t
中每个日期时间的完整月份名称。
m = month(t,'name')
m = 1x3 cell
{'July'} {'August'} {'September'}
您可以通过分别使用 year
、quarter
、week
、hour
、minute
和 second
函数,检索 t
中每个日期时间的年、季、周、日、时、分和秒分量。
获取 t
中每个日期时间属于一年中第几周这一数字。
w = week(t)
w = 1×3
30 34 39
获取多个日期时间分量
使用 ymd
函数获取 t
的年份、月份和日期值,并作为三个单独的数值数组。
[y,m,d] = ymd(t)
y = 1×3
2024 2025 2026
m = 1×3
7 8 9
d = 1×3
21 22 23
使用 hms
函数获取 t
的小时、分钟和秒值,并作为三个单独的数值数组。
[h,m,s] = hms(t)
h = 1×3
11 7 3
m = 1×3
18 18 18
s = 1×3
58.5974 58.5974 58.5974
修改日期时间分量
通过修改某个现有 datetime
数组的属性,将新值赋给该数组中的分量。使用圆点表示法访问特定属性。
将 t
中所有日期时间值的年份数字更改为 2014。使用圆点表示法修改 Year
属性。
t.Year = 2014
t = 1x3 datetime
21-Jul-2014 11:18:58 22-Aug-2014 07:18:58 23-Sep-2014 03:18:58
将 t
中三个日期时间值的月份分别更改为 1 月、2 月和 3 月。您必须将新的值指定为数值数组。
t.Month = [1,2,3]
t = 1x3 datetime
21-Jan-2014 11:18:58 22-Feb-2014 07:18:58 23-Mar-2014 03:18:58
通过为 TimeZone
属性赋值来设置 t
的时区。
t.TimeZone = 'Europe/Berlin';
更改 t
的显示格式,只显示日期而不显示时间信息。
t.Format = 'dd-MMM-yyyy'
t = 1x3 datetime
21-Jan-2014 22-Feb-2014 23-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 日。