Main Content

datetime

説明

datetime データ型は、2020 年 8 月 24 日午前 10 時 50 分 30 秒などの時点を表します。datetime 配列は、(先発 ISO 暦を使用して) 配列に格納されている各時点に関連付けられた年、月、日、時、分、秒の成分を指定します。

また、datetime 配列は以下を提供します。

  • 出力表示と入力テキスト解析の両方に対応する柔軟な形式。

  • ナノ秒までの精度をもつ秒数の小数部の格納。

  • タイム ゾーン、夏時間およびうるう秒を考慮するためのプロパティ。

作成

説明

t = datetime は、現在の日付と時刻に対応するスカラー datetime 配列を返します。

t = datetime(relativeDay) は、relativeDay で指定された日付を使用します。relativeDay 入力は、'today''tomorrow''yesterday''now' のいずれかです。

t = datetime(DateStrings) は、時点を表す DateStrings のテキストから datetime 値の配列を作成します。

t = datetime(DateStrings,'InputFormat',infmt)infmt で指定された形式を使用して、DateStrings を解釈します。入力引数 DateStrings のすべての値は、同じ形式をもたなければなりません。

類似する形式のあいまいさを回避するには、'InputFormat' とそれに対応する infmt の値を指定します。

t の表示形式を制御するには、名前と値のペアの引数 'Format' を指定するか、tFormat プロパティを設定します。

t = datetime(DateVectors) は、DateVectors の日付ベクトルから datetime 値の列ベクトルを作成します。

t = datetime(Y,M,D) は、YMD (年、月、日) の配列の各要素に対応する datetime 値からなる配列を作成します。配列は、同じサイズ (またはいずれかがスカラー) でなければなりません。入力引数は日付ベクトル [Y M D] として指定することもできます。

t = datetime(Y,M,D,H,MI,S) は、HMIS (時間、分、秒) の配列も作成します。すべての配列は、同じサイズ (またはいずれかがスカラー) でなければなりません。入力引数は日付ベクトル [Y M D H MI S] として指定することもできます。

t = datetime(Y,M,D,H,MI,S,MS)MS (ミリ秒) 配列を追加します。すべての配列は、同じサイズ (またはいずれかがスカラー) でなければなりません。

t = datetime(X,'ConvertFrom',dateType) は、X の数値を datetime 配列 t に変換します。dateType 引数で X の値の形式を指定します。

X に現地時刻を表す POSIX® 時刻またはユリウス日が含まれる場合は、名前と値のペアの引数 'TimeZone' を使用して t の適切なタイム ゾーンを指定します。タイム ゾーンを指定しない場合、X 内の POSIX 時刻またはユリウス日は現地時刻ではなく、UTC 時刻として処理されます。

t = datetime(___,Name,Value) は、前述の構文の入力引数のいずれかに加え、1 つ以上の名前と値のペアの引数を使用して追加のオプションを指定します。たとえば、名前と値のペアの引数 'Format' を使用して t の表示形式を指定できます。

テキストから datetime 値を作成するときに最良のパフォーマンスを得るには、'Format' か、'InputFormat' とその対応する infmt の値を指定します。

入力引数

すべて展開する

現在の日付を基準にした日。次のいずれかの値として指定します。

relativeDay の値説明
'yesterday'前の日の日付の午前 0 時
'today'現在の日付の午前 0 時
'tomorrow'次の日の日付の午前 0 時
'now'現在の日付と時刻

日付と時刻を表すテキスト。文字配列、文字ベクトルの cell 配列または string 配列として指定します。関数 datetime は、まず DateStrings の形式を一般的な形式に一致させようとします。形式が既知の場合は、'InputFormat' とそれに対応する infmt 値を指定するか、名前と値のペアの引数 'Format' を指定します。

例: '24-Oct-2014 12:45:07'

例: {'15-Oct-2013','20-Nov-2014'}

例: ["11-Nov-2016","12-Dec-2016"]

データ型: char | cell | string

日付と時刻を表す入力テキストの形式。文字識別子を含む文字ベクトルまたは string スカラーとして指定します。

  • infmt に日付を表す指定子が含まれていない場合、datetimeDateStrings の値を現在の日付と見なします。

  • infmt に時刻を表す指定子が含まれていない場合、datetimeDateStrings の値を深夜 0 時と見なします。

次の表に、いくつかの一般的な入力形式と、ニューヨーク市の 2014 年 4 月 19 日 (土) 9:41:06.12345 PM の書式設定された入力の例を示します。

infmt の値
'yyyy-MM-dd'2014-04-19
'dd/MM/yyyy'19/04/2014
'dd.MM.yyyy'19.04.2014
'yyyy年 MM月 dd日'2014年 04月 19日 (日本語のロケール ja_JP の文字)
'MMMM d, yyyy'4 月 19, 2014
'eeee, MMMM d, yyyy h:mm a'土曜日, 4 月 19, 2014 9:41 午後
'MMMM d, yyyy HH:mm:ss Z'4 月 19, 2014 21:41:06 -0400
'yyyy-MM-dd''T''HH:mmXXX'2014-04-19T21:41-04:00
'yyyy-MM-dd HH:mm:ss.SSS'2014-04-19 21:41:06.123

秒数の小数部を表す入力テキストの場合、9 文字以下の S を使用して infmt を指定し、秒数の小数部の桁を表すことができます。たとえば、'yyyy-MM-dd HH:mm:ss.SSS' は日付と時刻をミリ秒の精度で表すテキストの形式です。

有効な文字識別子の完全な一覧については、datetime 配列の Format プロパティを参照してください。ほとんどの識別子は入力形式と表示形式の両方として使用できます。ただし、MMMMM または e のすべての識別子は、入力テキストを解釈するために使用しないでください。これらの識別子は表示専用であるためです。

メモ

datetime が受け入れる文字識別子は、関数 datestrdatenum および datevec で使用される識別子とは異なります。

データ型: char | string

日付ベクトルは、m 行 6 列または m 行 3 列の行列として指定され、それぞれが m の日付ベクトルの全部または一部を含みます。完全な日付ベクトルには、年、月、日、時間、分、および秒をこの順序で指定する 6 つの要素があります。部分的な日付ベクトルには、年、月、および日付をこの順序で指定する 3 つの要素があります。DateVector の各要素は、秒の要素を除き、正または負の整数値でなければなりません。秒の要素は非整数の場合もあります。ある要素が通常の範囲外である場合、datetime ではその日付ベクトル要素と直前の要素の両方が調整されます。たとえば、分の要素が 70 である場合、datetime では時間の要素の値が 1 増やされて、分の要素の値が 10 に設定されます。分の要素が -15 である場合、datetime では時間の要素の値が 1 減らされて、分の要素の値が 45 に設定されます。

例: [2014 10 24 12 45 07]

例: [2014 10 24]

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

年、月、日の配列。数値配列として指定します。これらの配列は同じサイズでなければなりませんが、代わりにスカラーにすることもできます。Y,M,D は整数値でなければなりません。

  • Y,M,D がすべてスカラーまたはすべて列ベクトルである場合、入力引数を日付ベクトル [Y M D] として指定できます。

  • YMD のいずれかの入力の要素が通常の範囲を超える場合、datetime ではその要素と直前の入力の同じ要素の両方が調整されます。詳細は、DateVectors 入力引数の説明を参照してください。

例: 2003,10,24

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

年、月、日、時、分、秒の配列。数値配列として指定します。これらの配列は同じサイズでなければなりませんが、代わりにスカラーにすることもできます。秒の入力 S には小数を指定できます。Y,M,D,H,MI の配列は、整数値を含まなければなりません。

  • Y,M,D,H,MI,S がすべてスカラーまたはすべて列ベクトルである場合、入力引数を日付ベクトル [Y M D H MI S] として指定できます。

  • YMDHMIS のいずれかの入力の要素が通常の範囲を超える場合、datetime ではその要素と直前の入力の同じ要素の両方が調整されます。詳細は、DateVectors 入力引数の説明を参照してください。

例: 2003,10,24,12,45,07.451

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

年、月、日、時、分、秒およびミリ秒の配列。数値配列として指定します。これらの配列は同じサイズでなければなりませんが、代わりにスカラーにすることもできます。Y,M,D,H,MI,S の配列は、整数値を含まなければなりません。MS は小数のミリ秒を含むことができます。

YMDHMISMS のいずれかの入力の要素が通常の範囲を超える場合、datetime によってその要素と、直前の入力の同じ要素が両方とも調整されます。詳細は、DateVectors 入力引数の説明を参照してください。

例: 2003,10,24,12,45,07,10.52

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

数値。配列として指定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

X の値のタイプ。次のいずれかの値として指定します。

dateType の値

X の値の形式

'datenum'

0000 年 1 月 0 日からの日数 (先発 ISO 暦)。

'excel'

1900 年 1 月 0 日からの日数。

Excel® の日付値は、最も近いマイクロ秒に丸められます。

メモ: Excel は誤って 1900 年をうるう年であると見なしています。したがって、Excel の日付値を計算するときには、1900 年 2 月 28 日と 1900 年 3 月 1 日の間に 1 日余分な日が入り、不連続性が発生します。

'excel1904'

1904 年 1 月 0 日からの日数。

Excel の日付値は、最も近いマイクロ秒に丸められます。

メモ: Excel は誤って 1900 年をうるう年であると見なしています。したがって、Excel の日付値を計算するときには、1900 年 2 月 28 日と 1900 年 3 月 1 日の間に 1 日余分な日が入り、不連続性が発生します。

'juliandate'

紀元前 4714 年 11 月 24 日午後 0 時 (UTC) からの日数 (先発グレゴリオ暦)。

タイム ゾーンを指定せずに Xdatetime 配列に変換する場合、datetime 値は現地時刻ではなく、UTC 時刻を表します。現地時刻を表すには、名前と値のペアの引数 'TimeZone' を使用してタイム ゾーンを指定します。

例: ニューヨークのタイム ゾーンを使用して X を変換します。

T = datetime(X,'ConvertFrom','juliandate',...
'TimeZone','America/New_York')

次に、TimeZone に空の文字ベクトルを割り当てて、T をタイム ゾーンなしで現地時刻を表す datetime 配列に変換できます。

T.TimeZone = ''

'modifiedjuliandate'

1858 年 11 月 17 日午前 0 時 (UTC) からの日数。

タイム ゾーンを指定せずに Xdatetime 配列に変換する場合、datetime 値は現地時刻ではなく、UTC 時刻を表します。現地時刻を表すには、名前と値のペアの引数 'TimeZone' を使用してタイム ゾーンを指定します。

例: ニューヨークのタイム ゾーンを使用して X を変換します。

T = datetime(X,'ConvertFrom','modifiedjuliandate',...
'TimeZone','America/New_York')

次に、TimeZone に空の文字ベクトルを割り当てて、T をタイム ゾーンなしで現地時刻を表す datetime 配列に変換できます。

T.TimeZone = ''

'posixtime'

1970 年 1 月 1 日 00:00:00 (UTC) からの秒数 (うるう秒のカウントなし)。

タイム ゾーンを指定せずに Xdatetime 配列に変換する場合、datetime 値は現地時刻ではなく、UTC 時刻を表します。現地時刻を表すには、名前と値のペアの引数 'TimeZone' を使用してタイム ゾーンを指定します。

例: ニューヨークのタイム ゾーンを使用して X を変換します。

T = datetime(X,'ConvertFrom','posixtime',...
'TimeZone','America/New_York')

次に、TimeZone に空の文字ベクトルを割り当てて、T をタイム ゾーンなしで現地時刻を表す datetime 配列に変換できます。

T.TimeZone = ''

'yyyymmdd'

YYYYMMDD の数値で表される日付。たとえば、20140402 は 2014 年 4 月 2 日を表します。

'ntp'

1900 年 1 月 1 日 00:00:00 (UTC) からの "時間刻み" の数 (個々の時間刻みは 2^-32 秒)

'.net'

0001 年 1 月 1 日 00:00:00 (UTC) からの "時間刻み" の数 (個々の時間刻みは 100 ns)

'ntfs'

1601 年 1 月 1 日 00:00:00 (UTC) からの "時間刻み" の数 (個々の時間刻みは 100 ns)

'tt2000'

J2000 からの経過時間 (ナノ秒単位)。Common Data Format (CDF) は、CDF_TIME_TT2000 (または TT2000) データ型を、CDF ファイルのデータのうるう秒を処理する高分解能な時間型として定義します。詳細については、Requirements for handling leap seconds in CDF を参照してください。

入力 X は、要素が TT2000 エポックの時間を表す int64 配列でなければなりません。

TT2000 時間を変換するには、名前と値の引数 "ConvertFrom","tt2000" および "TimeZone","UTCLeapSeconds" を使用して datetime を呼び出します。UTCLeapSeconds タイム ゾーンは、うるう秒を考慮する唯一のタイム ゾーンです。

メモ: J2000 は地球時 (TT) 2000 年 1 月 1 日 12:00 です。TT は次の 2 つの点で UTC と異なります。

  • うるう秒

  • TT と原子時計の計時に 32.184 秒の差

その結果、J2000 は次のように、UTCLeapSeconds タイム ゾーンの正午の 64.184 秒前に発生します。

D = datetime(2000,1,1,11,58,55,816,"TimeZone","UTCLeapSeconds")
D = 2000-01-01T11:58:55.816Z

例: TT2000 時間を表す int64 配列を作成します。次にそれを datetime 配列に変換します。

X = int64([702077514184000000; ...
           702163914184000000; ...
           702250314184000000])
X =
  3x1 int64 column vector
   702077514184000000
   702163914184000000
   702250314184000000
D = datetime(X,"ConvertFrom","tt2000","TimeZone","UTCLeapSeconds")
D = 
  3x1 datetime array
   2022-04-01T09:30:45.000Z
   2022-04-02T09:30:45.000Z
   2022-04-03T09:30:45.000Z

'epochtime'

既定のエポック時刻からの秒数。

既定のエポック時刻は 1970 年 1 月 1 日 00:00:00 (UTC) です。

例: 既定のエポック時刻を使用して X を変換します。

T = datetime(X,'ConvertFrom','epochtime')

'epochtime','Epoch',epochValue

特定のエポックからの秒数

エポックを指定するには、追加の名前と値の引数 'Epoch' を使用します。値 epochValue は、エポック時刻を表す datetime スカラー、文字ベクトル、または string スカラーです。

例: 2000 年 1 月 1 日午前 0 時をエポックとして使用して X を変換します。

T = datetime(X,'ConvertFrom',...
'epochtime','Epoch','2000-01-01')

'epochtime','Epoch',epochValue,'TicksPerSecond',n

エポック時刻からの "時間刻み" の数。

epochValue の指定に加えて、1 秒あたりの "時間刻み" の数であるスカラー整数 n を指定することもできます。

例: 2000 年 1 月 1 日午前 0 時をエポックとして使用して X を変換します。この変換では、1 秒あたりの "時間刻み" の数が 1000 と指定されているため、X の値が 2000 年 1 月 1 日午前 0 時からのミリ秒数として解釈されます。

T = datetime(X,'ConvertFrom',...
'epochtime','Epoch','2000-01-01','TicksPerSecond',1000)

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

例: 'Format','eeee MMMM d, y','TimeZone','local' は、datetime 値に表示形式を適用し、ローカル タイム ゾーンを指定します。

出力配列の値の表示形式。'Format' と次のいずれかの値で構成されるコンマ区切りのペアとして指定します。

Format の値説明

'default'

既定の表示形式を使用します。

'preserveinput'

入力形式 infmt で指定された形式を使用します。infmt を指定しない場合は、datetime で自動的に形式が判別されます。

文字ベクトルまたは string スカラー

文字ベクトルまたは string スカラーで指定された形式を使用します。

独自の形式を指定する場合は、有効な文字識別子を使用しなければなりません。すべての有効な文字識別子の一覧については、Format プロパティを参照してください。

出荷時の既定の形式はシステムのロケールに依存します。既定の表示形式を変更するには、既定の datetime 形式を参照してください。

'InputFormat' パラメーターを指定せずに DateStrings の入力を指定した場合、datetimeFormat の値に基づいて DateStrings を解釈しようとします。

例: 'Format','eeee, MMMM d, yyyy HH:mm:ss' は、日付と時刻を水曜日, 4 月 9, 2014 21:41:06 のような形式で表示します。

データ型: char | string

入力引数 DateStrings の値のロケール。'Locale' と、文字ベクトルまたは string スカラーで構成されるコンマ区切りのペアとして指定します。Locale の値により、datetimeDateStrings を解釈する方法が決まります。ただし、出力の datetime 値を表示する方法は、これでは決まりません。

Locale の値は次のいずれかになります。

  • "system"。システムのロケールを使用します。

  • xx_YY の形式の string スカラーまたは文字ベクトル。xx は ISO 639-1 で定義された小文字 2 文字の言語コードで、YY は ISO 3166-1 alpha-2 で定義された大文字の国コードです。

次の表に一般的なロケールの値を示します。

ロケール 言語
"de_DE"ドイツ語ドイツ
"en_GB"英語英国
"en_US"英語米国
"es_ES"スペイン語スペイン
"fr_FR"フランス語フランス
"it_IT"イタリア語イタリア
"ja_JP"日本語日本
"ko_KR"韓国語韓国
"nl_NL"オランダ語オランダ
"zh_CN"簡体字中国語中国

名前と値のペアの引数 'Locale' は、DateStrings 入力引数を使用する場合にのみ使用できます。

例: 'Locale',"de_DE"

メモ

Locale 値により、入力テキスト値の解釈方法が決まります。出力の datetime 値は常に、[基本設定] ウィンドウの [日付と時刻の形式] セクションの [ロケール] オプションで指定された言語で表示されます。

データ型: char | string

2 文字表記の年を含む 100 年の日付範囲の開始年。'PivotYear' と整数で構成されるコンマ区切りのペアとして指定します。ピボット年は、年が 2 文字で指定されている日付の解釈に使用されます。つまり、ピボット年は infmt 引数に y または yy が含まれている場合にのみ有効になります。

名前と値のペアの引数 'PivotYear' は、DateStrings 入力引数を使用する場合にのみ使用できます。

例: 'PivotYear',1900

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

タイム ゾーン。'TimeZone' と、タイム ゾーンを指定する文字ベクトルまたは string スカラーで構成されるコンマ区切りのペアとして指定します。

関数 datetime'TimeZone' の値を使用して、入力データを解釈し、出力配列の TimeZone プロパティを設定します。入力データがタイム ゾーンを含む文字ベクトルまたは string である場合、関数 datetime はすべての値を指定されたタイム ゾーンに変換します。

タイム ゾーンの詳細とリストについては、TimeZone プロパティを参照してください。

データ型: char | string

プロパティ

すべて展開する

表示形式。'default'、文字ベクトルまたは string スカラーとして指定します。

Format の値説明

'default'

既定の表示形式を使用します。

文字ベクトルまたは string スカラー

文字ベクトルまたは string スカラーで指定された形式を使用します。

独自の形式を指定する場合は、Unicode® ロケール データ マークアップ言語 (LDML) の標準の日付および時刻に対応する有効な文字識別子を使用しなければなりません。LDML の詳細については、Unicode Technical Standard #35、特に Date Field Symbol Table を参照してください。

例: 'eeee, MMMM d, yyyy HH:mm:ss' は、日付と時刻を水曜日, 4 月 9, 2014 21:41:06 のような形式で表示します。

フィールドを区切るために、ハイフン、スペース、コロンなどの記号や ASCII 以外の文字を含めることができます。文字 A-Z および a-z をリテラル文字として形式に含めるには、文字を一重引用符で囲みます。

例: 'uuuu-MM-dd''T''HH:mm:ss' は、日付と時刻を 2014-04-09T21:41:06 のような形式で表示します。

メモ

datetime が受け入れる文字識別子は、関数 datestrdatenum および datevec で使用される識別子とは異なります。

出荷時の既定の形式はシステムのロケールに依存します。既定の表示形式を変更するには、既定の datetime 形式を参照してください。

一般的な形式の例

次の表に一般的な表示形式を示します。ここで示す出力の例は、ニューヨーク市の 2014 年 4 月 9 日 (水) 9:41:06.12345 PM の日付に各形式を適用したものです。

Format の値
'yyyy-MM-dd'2014-04-09
'dd/MM/yyyy'09/04/2014
'dd.MM.yyyy'09.04.2014
'yyyy年 MM月 dd日'2014年 04月 09日 (日本語のロケール ja_JP の文字)
'MMMM d, yyyy'4 月 9, 2014
'eeee, MMMM d, yyyy h:mm a'水曜日, 4 月 9, 2014 9:41 PM
'MMMM d, yyyy HH:mm:ss Z'4 月 9, 2014 21:41:06 -0400
'yyyy-MM-dd''T''HH:mmXXX'2014-04-09T21:41-04:00
'yyyy-MM-dd HH:mm:ss.SSS'2014-04-09 21:41:06.123

すべての日付と時刻の形式

日付および時刻のフィールドの表示形式を指定するには、次の識別子を使用します。表示形式は、ニューヨーク市の 2014 年 4 月 9 日 (水) 9:41:06.12345 PM の日付の出力を示します。

文字識別子説明表示
G紀元CE
y先頭に 0 を付けない表記の年。この表の後のメモを参照してください。2014
yy下 2 桁表記の年。この表の後のメモを参照してください。14
yyy, yyyy ...'y' の数に対応する桁数以上で表記した年2014 年の場合、'yyy' では 2014 と表示され、'yyyyy' では 02014 と表示されます。
u, uu, ...ISO 年。年を単一の数値で表したものです。ISO 年では、紀元後の年が正の値、紀元前の年が負の値で表され、紀元前 1 年が 0 年になります。2014
Q1 桁表記の四半期2
QQ2 桁表記の四半期02
QQQ省略形で表記した四半期Q2
QQQQ完全名で表記した四半期第2四半期
M1 桁または 2 桁の数値で表記した月4
MM2 桁の数値で表記した月04
MMM短縮名で表記した月4月
MMMM完全名で表記した月4月
MMMMM大文字の頭文字で表記した月A
W1 桁表記の月間通算週2
d1 桁または 2 桁表記の月間通算日9
dd2 桁表記の月間通算日09
D1 ~ 3 桁表記の年間通算日99
DD2 桁表記の年間通算日99
DDD3 桁表記の年間通算日099
e1 桁または 2 桁の数値で表記した曜日4 (週の始まりは日曜日)
ee2 桁の数値で表記した曜日04
eee短縮名で表記した曜日
eeee完全名で表記した曜日水曜日
eeeee先頭文字で表記した曜日
a午前と午後の区分午後
h1 桁または 2 桁表記の 12 時間制の時間9
hh2 桁表記の 12 時間制の時間09
H1 桁または 2 桁表記の 24 時間制の時間21
HH2 桁表記の 24 時間制の時間21
m1 桁または 2 桁表記の分41
mm2 桁表記の分41
s1 桁または 2 桁表記の秒6
ss2 桁表記の秒06
S, SS, ..., SSSSSSSSS'S' の数に対応する桁数で表記した秒の小数部 (最大 9 桁)'SSS' の場合、6.12345 秒は 6.123 までに切り捨てられます。

メモ

一部の識別子の動作は、ロケール、入力データ、または他の識別子の値によって変わります。

ロケールの影響:

  • 曜日名や月名などのローカライズされた名前を表示または解釈する際、datetime 識別子は確立された国際規格に従います。

  • 異なるロケール間で同様の動作を確保するには、ロケール依存の動作を示す識別子の使用は避けてください。一般に、このような識別子はロケール依存の曜日名や月名、またはロケール依存のタイム ゾーン オフセットを指定します。

    ロケール依存の識別子には、MMMMMMMeeeeeeezZZZZ があります。

大きな年の値の影響:

  • 紀元後 144683 年より後または紀元前 140743 年より前の datetime 値については、Format プロパティで指定された識別子に関係なく、年番号のみが表示されます。

日と年の識別子の影響:

  • 2 桁の年番号を読み取る場合に形式を y または yy として指定すると、その年の世紀はピボット年に基づいて判別されます。

  • 年間通算日番号を読み取る場合に年間通算日 (D) とグレゴリオ年 (y) の両方の識別子を含む形式を指定すると、datetime は年間通算日番号を正確に読み取らないことがあります。y の代わりに ISO 年 (u) を使用してください。

  • ゼロに近い年番号を扱うときは、文字 y の代わりに文字 u を 1 文字以上使用します。

タイム ゾーン オフセットの形式

タイム ゾーン オフセットの表示形式を指定するには、次の識別子を使用します。タイム ゾーン オフセットは、特定の datetime と UTC との時差です。タイム ゾーンには、タイム ゾーン オフセットを決定するルールがあり、オフセットは 1 年のうちの時期に応じて異なります。タイム ゾーン オフセットの指定子を datetime 配列の表示形式に含めると、表示する時刻の成分を明確に指定できます。

文字識別子説明表示
z

タイム ゾーン オフセットの省略名。この値が指定されていない場合、タイム ゾーン オフセットには UTC-4 などの短い UTC 形式が使用されます。

この識別子は、タイム ゾーン オフセットの短いローカライズ バージョンを指定します。その動作はロケールに依存します。

EDT
ZISO 8601 基本形式。時、分、秒 (オプション) の各フィールドがあります。-0400
ZZZZ

長い UTC 形式。

この識別子は、タイム ゾーン オフセットの長いローカライズ バージョンを指定します。その動作はロケールに依存します。

UTC-04:00
ZZZZZISO 8601 拡張形式。時、分、秒 (オプション) の各フィールドがあります。ISO 8601 UTC 指定子 "Z" として 0 の時間オフセットが表示されます。-04:00
x または XISO 8601 基本形式。時、分 (オプション) の各フィールドがあります。X を指定すると、ISO 8601 UTC 指定子 "Z" として 0 の時間オフセットが表示されます。-04
xx または XXISO 8601 基本形式。時、分の各フィールドがあります。XX を指定すると、ISO 8601 UTC 指定子 "Z" として 0 の時間オフセットが表示されます。-0400
xxx または XXXISO 8601 拡張形式。時、分の各フィールドがあります。XXX を指定すると、ISO 8601 UTC 指定子 "Z" として 0 の時間オフセットが表示されます。-04:00
xxxx または XXXXISO 8601 基本形式。時、分、秒 (オプション) の各フィールドがあります。XXXX を指定すると、ISO 8601 UTC 指定子 "Z" として 0 の時間オフセットが表示されます。-0400
xxxxx または XXXXXISO 8601 拡張形式。時、分、秒 (オプション) の各フィールドがあります。XXXXX を指定すると、ISO 8601 UTC 指定子 "Z" として 0 の時間オフセットが表示されます。-04:00

タイム ゾーン。文字ベクトルまたは string スカラーとして指定します。このプロパティを設定して、datetime 配列を作成した後にタイム ゾーンを変更できます。

タイム ゾーンを設定して、タイム ゾーンのオフセットを計算するには、datetime データ型は、IANA タイム ゾーン データベースの Internet Assigned Numbers Authority (IANA) で提供されているコードとデータを使用します。datetime で現在使用されているバージョンには、IANA からの最新の更新が含まれています (datetime で使用されているバージョンを取得するために、関数 timezones の 2 つ目の出力を返します)。

次の表に、TimeZone プロパティを設定するために指定できる値を示します。

指定した値

結果として得られるタイム ゾーン

''

タイム ゾーンはありません。datetime 配列は "ゾーンなし" になります。

IANA タイム ゾーン データベースのタイム ゾーン地域の名前

例: 'America/New_York'

その地域で使用される標準および夏時間の UTC オフセットについて、現在および過去の規則が考慮されるタイム ゾーン地域。IANA タイム ゾーンの完全な一覧については、timezones を参照してください。

ISO 8601 の +HH:mm または -HH:mm 形式の string

例: '+01:00'

例: '-01:00'

UTC からの固定オフセットのタイム ゾーン。string は、-24:00 より大きく +24:00 より小さい値をエンコードする必要があります。秒数の小数部を含めることはできません。

duration スカラー (R2024a 以降)

例: hours(1)

例: hours(-1)

UTC からの固定オフセットのタイム ゾーン。duration スカラーは、hours(-24) より大きく hours(24) より小さい値にする必要があります。秒数の小数部を含めることはできません。

'UTC'

協定世界時。

'UTCLeapSeconds'

タイム ゾーンでうるう秒も考慮される協定世界時。datetime データ型でサポートされる、うるう秒のリストについては、leapseconds を参照してください。

'local'

TimeZone プロパティの値は、システムのタイム ゾーンに対応する IANA タイム ゾーンに設定されます。TimeZone プロパティをクエリすると IANA 値が返されます。

次の表に IANA タイム ゾーン データベースの一般的なタイム ゾーン地域の名前を示します。

TimeZone の値UTC オフセットUTC DST オフセット
'Africa/Johannesburg'+02:00+02:00
'America/Chicago'−06:00−05:00
'America/Denver'−07:00−06:00
'America/Los_Angeles'−08:00−07:00
'America/New_York'−05:00−04:00
'America/Sao_Paulo'−03:00−02:00
'Asia/Hong_Kong'+08:00+08:00
'Asia/Kolkata'+05:30+05:30
'Asia/Tokyo'+09:00+09:00
'Australia/Sydney'+10:00+11:00
'Europe/London'+00:00+01:00
'Europe/Zurich'+01:00+02:00

データ型: char | string

datetime 配列の各値の年番号。サイズおよび形状が datetime 配列と同じ数値配列として指定します。それぞれの年番号は ISO カレンダーに基づく整数値です。紀元後の年の値は正、紀元前の年の値は 0 または負になります。たとえば、紀元前 1 年の年番号は 0 になります。

うるう日 (2 月 29 日) にあたる datetime 値で Year プロパティをうるう年でない年に設定すると、その日の DayMonth のプロパティが 3 月 1 日に変わります。

datetime 配列の各値の月番号。サイズおよび形状が datetime 配列と同じ数値配列として指定します。それぞれの月番号は 1 から 12 までの整数値です。範囲外の値を設定した場合、Month プロパティの値が 1 から 12 までの範囲になるように Year プロパティの値が調整されます。たとえば、月番号 0 は前の年の 12 月に相当します。過去の日付の月番号は先発グレゴリオ暦に基づきます。

datetime 配列の各値の月間通算日番号。サイズおよび形状が datetime 配列と同じ数値配列として指定します。月間通算日番号はそれぞれ 1 から 28、29、30 または 31 までの整数値で、値の範囲は月および年によって異なります。範囲外の値を設定した場合、Day プロパティの値が適切な範囲になるように Month プロパティと Year プロパティが調整されます。たとえば、日番号 0 は前の月の最後の日に相当します。過去の日付の日番号は先発グレゴリオ暦に基づきます。

datetime 配列の各値の時間番号。サイズおよび形状が datetime 配列と同じ数値配列として指定します。それぞれの時間番号は 0 から 23 までの整数値です。範囲外の値を設定した場合、Hour プロパティの値が適切な範囲になるように DayMonthYear のプロパティが調整されます。たとえば、時間番号 -1 は前の日の 23 時に相当します。

夏時間に従う特定のタイム ゾーンの datetime 配列には、以下の条件が適用されます。

  • 夏時間開始時の時間の隙間によって生じる存在しない datetime を作成する値を Hour プロパティに指定した場合は、Hour プロパティが 1 時間後の時刻に調整されます。

  • 夏時間終了時の時間のオーバーラップによって生じるあいまいな datetime を作成する値を Hour プロパティに指定した場合は、2 つの時刻のうち標準時で 2 番目にあたる時刻に datetime が調整されます。

datetime 配列の各値の分番号。サイズおよび形状が datetime 配列と同じ数値配列として指定します。それぞれの分番号は 0 から 59 までの整数値です。範囲外の値を指定した場合、Minute プロパティの値が適切な範囲になるように HourDayMonthYear のプロパティが調整されます。たとえば、分番号 -1 は前の時刻の 59 分に対応します。

datetime 配列の各値の秒数。サイズおよび形状が datetime 配列と同じ数値配列として指定します。それぞれの秒の値は浮動小数点値で、通常は 0 以上 60 未満の範囲になります。範囲外の値を設定した場合、Second プロパティの値が適切な範囲になるように MinuteHourDayMonthYear のプロパティが調整されます。たとえば、-1 秒は前の分の 59 秒に対応します。

TimeZone の値が 'UTCLeapSeconds' に設定された datetime 配列の場合、秒の範囲は 0 以上 61 未満になります。60 ~ 61 の値はうるう秒の datetime を表します。datetime データ型でサポートされる、うるう秒のリストについては、leapseconds を参照してください。

この プロパティ は読み取り専用です。

システムのタイム ゾーン設定。文字ベクトルまたは string スカラーとして指定します。このタイム ゾーン設定は MATLAB® を実行しているシステムによって決まります。

例: America/New_York

すべて折りたたむ

ローカル システムのタイム ゾーンにおける現在の日付と時刻を指定します。

t = datetime('now','TimeZone','local','Format','d-MMM-y HH:mm:ss Z')
t = datetime
   7-Mar-2024 16:20:07 -0500

韓国のソウルのタイム ゾーンにおける現在の日付と時刻を指定します。

t = datetime('now','TimeZone','Asia/Seoul','Format','d-MMM-y HH:mm:ss Z')
t = datetime
   8-Mar-2024 06:20:07 +0900

文字ベクトルの cell 配列から datetime 配列を作成します。

DateStrings = {'2014-05-26';'2014-08-03'};
t = datetime(DateStrings,'InputFormat','yyyy-MM-dd')
t = 2x1 datetime
   26-May-2014
   03-Aug-2014

t の datetime 値は、入力日付の形式ではなく既定の形式を使用して表示されます。

R2016b 以降では、関数 string を使用して string 配列を作成し、その後 datetime 値に変換することができます。

str = ["2016-03-24","2016-04-19"]
str = 1x2 string
    "2016-03-24"    "2016-04-19"

入力形式を yyyy-MM-dd に指定して、string を変換します。str が string 配列であっても、形式は文字ベクトルとして指定しなければなりません。

t = datetime(str,'InputFormat','yyyy-MM-dd')
t = 1x2 datetime
   24-Mar-2016   19-Apr-2016

日付と時刻をミリ秒の精度で表すテキストから datetime 値を作成します。追加情報なしに関数 datetime では解析できない形式のテキストを変換するために、名前と値のペアの引数 'InputFormat' を指定します。

d = '2018-06-25 11:23:37.712';
t = datetime(d,'InputFormat','yyyy-MM-dd HH:mm:ss.SSS')
t = datetime
   25-Jun-2018 11:23:37

この変換では秒数の小数部が保持されます。しかし、既定の datetime 配列は秒数の小数部を "表示" しません。これを表示するには、名前と値のペア 'Format'、または Format プロパティのいずれかを指定します。

t.Format = 'MMM dd, yyyy HH:mm:ss.SSS'
t = datetime
   Jun 25, 2018 11:23:37.712

'InputFormat' 引数は、入力テキストからの変換にのみ適用されます。Format プロパティは、任意の datetime 配列の表示を指定します。

ISO 8601 形式の日付を datetime 値に変換します。

ISO 8601 形式の日付を含む文字ベクトルからなる cell 配列を作成します。この形式では、日付と時刻の区切り記号として文字 T が使用されます。各文字ベクトルにタイム ゾーン オフセットが含まれます。文字 Z は UTC からのオフセットがゼロであることを示します。

DateStrings = {'2014-05-26T13:30-05:00';'2014-08-26T13:30-04:00';'2014-09-26T13:30Z'}
DateStrings = 3x1 cell
    {'2014-05-26T13:30-05:00'}
    {'2014-08-26T13:30-04:00'}
    {'2014-09-26T13:30Z'     }

文字ベクトルを datetime 値に変換します。入力形式を指定するときに、文字 T を一重引用符で囲んでリテラル文字であることを示します。名前と値のペアの引数 TimeZone を使用して、出力する datetime 配列のタイム ゾーンを指定します。

t = datetime(DateStrings,'InputFormat','uuuu-MM-dd''T''HH:mmXXX','TimeZone','UTC')
t = 3x1 datetime
   26-May-2014 18:30:00
   26-Aug-2014 17:30:00
   26-Sep-2014 13:30:00

t の datetime 値は、既定の形式で表示されます。

フランス語の日付を含む文字ベクトルの cell 配列を作成します。

C = {'8 avril 2013','9 mai 2013';'10 juin 2014','11 juillet 2014'}
C = 2x2 cell
    {'8 avril 2013'}    {'9 mai 2013'     }
    {'10 juin 2014'}    {'11 juillet 2014'}

C の文字ベクトルを datetime 値に変換します。使用しているコンピューターが英語を使用するロケールに設定されている場合は、名前と値のペアの引数 'Locale' を指定して、その文字列がフランス語表記であることを示さなければなりません。

t = datetime(C,'InputFormat','d MMMM yyyy','Locale','fr_FR')
t = 2x2 datetime
   08-Apr-2013   09-May-2013
   10-Jun-2014   11-Jul-2014

t の datetime 値は、既定の形式、および設定されているシステム ロケールに基づいて MATLAB® が使用する言語で表示されます。

年、月、日の値が別々に格納された複数の配列から datetime 配列を作成します。

年の値 Y と日の値 D のサンプル数値配列を作成します。この例では、月の値 M はスカラーにします。

Y = [2014;2013;2012];
M = 01;
D = [31;30;31];

datetime 配列を作成します。

t = datetime(Y,M,D)
t = 3x1 datetime
   31-Jan-2014
   30-Jan-2013
   31-Jan-2012

名前と値のペアの引数 Format を使用して出力のカスタム表示形式を指定します。

t = datetime(Y,M,D,'Format','eeee, MMMM d, y')
t = 3x1 datetime
   Friday, January 31, 2014   
   Wednesday, January 30, 2013
   Tuesday, January 31, 2012  

1900 年 1 月 0 日からの日数を表す Excel® 日付値のサンプル配列を作成します。

X = [39558, 39600; 39700, 39800]
X = 2×2

       39558       39600
       39700       39800

X の値を datetime 値に変換します。

t = datetime(X,'ConvertFrom','excel')
t = 2x2 datetime
   20-Apr-2008   01-Jun-2008
   09-Sep-2008   18-Dec-2008

ヒント

拡張機能

スレッドベースの環境
MATLAB® の backgroundPool を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool を使用してコードを高速化します。

バージョン履歴

R2014b で導入

すべて展開する