指定时区
在 MATLAB® 中,时区包含了与协调世界时 (UTC) 的时间偏移、夏令时偏移以及对这些值的一系列历史调整。时区设置存储在每个 datetime
数组的 TimeZone
属性中。当您创建一个日期时间时,默认情况下是未设置时区的。即日期时间的 TimeZone
属性为空 (''
)。如果您不用处理来自多个时区的日期时间值,也无需考虑夏令时,则无需指定此属性。
在创建日期时间时,您可以使用 'TimeZone'
名称-值对组参数指定时区。时区值 'local'
指定系统时区。要显示每个日期时间的时区偏移,请在 'Format'
参数的值中包含 'Z'
等时区偏移设定符。
t = datetime(2014,3,8:9,6,0,0,'TimeZone','local',... 'Format','d-MMM-y HH:mm:ss Z')
t = 8-Mar-2014 06:00:00 -0500 9-Mar-2014 06:00:00 -0400
根据日期时间是否在夏令时期间发生,将显示不同的时区偏移。
您可以修改现有日期时间的时区。例如,使用圆点表示法更改 t
的 TimeZone
属性。您可以将时区值指定为 IANA 时区数据库中的时区地区的名称。时区地区综合考虑了从该地理区域观察到的标准时间和夏令时与 UTC 之间的偏移所适用的当前规则和历史规则。
t.TimeZone = 'Asia/Shanghai'
t = 8-Mar-2014 19:00:00 +0800 9-Mar-2014 18:00:00 +0800
您也可以将时区值指定为 +HH:mm
或 -HH:mm
形式的字符向量,它表示该时区与 UTC 之间存在一个固定的偏移量,而不考虑夏令时。
t.TimeZone = '+08:00'
t = 8-Mar-2014 19:00:00 +0800 9-Mar-2014 18:00:00 +0800
对于包含时区信息的日期时间数组,在运算时会自动考虑时区差异。例如,创建一个不同时区的日期时间。
u = datetime(2014,3,9,6,0,0,'TimeZone','Europe/London',... 'Format','d-MMM-y HH:mm:ss Z')
u = 9-Mar-2014 06:00:00 +0000
查看两个日期时间数组之间的时差。
dt = t - u
dt = -19:00:00 04:00:00
当您执行涉及日期时间数组的运算时,这些数组要么必须都有所关联的时区,要么必须都没有设置时区。