Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

指定时区

在 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

根据日期时间是否在夏令时期间发生,将显示不同的时区偏移。

您可以修改现有日期时间的时区。例如,使用圆点表示法更改 tTimeZone 属性。您可以将时区值指定为 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

当您执行涉及日期时间数组的运算时,这些数组要么必须都有所关联的时区,要么必须都没有设置时区。

另请参阅

|

相关主题