タイム ゾーンの指定
MATLAB® では、タイム ゾーンには協定世界時 (UTC) からの時間オフセット、夏時間オフセットおよびこれらの値の一連の変更履歴が含まれます。タイム ゾーン設定は、各 datetime
配列の TimeZone
プロパティに保存されます。datetime を作成すると、既定ではタイム ゾーンは設定されません。つまり、datetime の TimeZone
プロパティは空です (''
)。複数のタイム ゾーンからの 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 のタイム ゾーンを修正できます。たとえば、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
タイム ゾーンをもつ 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
2 つの datetime 配列の時差を表示します。
dt = t - u
dt = -19:00:00 04:00:00
複数の datetime 配列を含む演算を実行する場合、それらの配列すべてにタイム ゾーンが関連付けられているか、またはすべてタイム ゾーンなしでなければなりません。