В 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, массивы или должны были все сопоставить часовой пояс с ними, или у них должна все нет времени зона.