В MATLAB® часовой пояс включает смещение времени со Всемирного координированного времени (UTC), смещение летнего времени и набор исторических изменений в тех значениях. Установка часового пояса хранится в свойстве TimeZone
каждого массива datetime
. Когда вы создаете datetime, это является незонным по умолчанию. Таким образом, свойство TimeZone
datetime пусто (''
). Если вы не работаете со значениями datetime от нескольких часовых поясов и не должны считать в течение летнего времени, вы не можете должны быть задавать это свойство.
Можно задать часовой пояс, когда вы создаете datetime, с помощью аргумента пары "имя-значение" 'TimeZone'
. Значение часового пояса 'local'
задает зону системного времени. Чтобы отобразить смещение часового пояса для каждого datetime, включайте спецификатор смещения часового пояса, такой как 'Z'
в значении для аргумента 'Format'
.
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
Различное смещение часового пояса отображено в зависимости от того, происходит ли datetime в течение летнего времени.
Можно изменить часовой пояс существующего datetime. Например, измените свойство TimeZone
t
с помощью записи через точку. Можно задать значение часового пояса как имя области часового пояса в Базе данных Часового пояса 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
Операции на массивах datetime с часовыми поясами автоматически составляют различия в часовом поясе. Например, создайте datetime в различном часовом поясе.
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
Просмотрите разницу во времени между этими двумя массивами datetime.
dt = t - u
dt = -19:00:00 04:00:00
Когда вы выполняете операции включающие массивы datetime, массивы или должны были все сопоставить часовой пояс с ними, или у них должна все нет времени зона.