datetime
時点を表す配列
説明
datetime データ型は、2020 年 8 月 24 日午前 10 時 50 分 30 秒などの時点を表します。datetime 配列は、(先発 ISO 暦を使用して) 配列に格納されている各時点に関連付けられた年、月、日、時、分、秒の成分を指定します。
また、datetime 配列は以下を提供します。
出力表示と入力テキスト解析の両方に対応する柔軟な形式。
ナノ秒までの精度をもつ秒数の小数部の格納。
タイム ゾーン、夏時間およびうるう秒を考慮するためのプロパティ。
作成
構文
説明
は、現在の日付と時刻に対応するスカラー t = datetimedatetime 配列を返します。
は、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' を指定するか、t の Format プロパティを設定します。
は、t = datetime(DateVectors)DateVectors の日付ベクトルから datetime 値の列ベクトルを作成します。
は、t = datetime(Y,M,D)Y、M、D (年、月、日) の配列の各要素に対応する datetime 値からなる配列を作成します。配列は、同じサイズ (またはいずれかがスカラー) でなければなりません。入力引数は日付ベクトル [Y M D] として指定することもできます。
は、t = datetime(Y,M,D,H,MI,S)H、MI、S (時間、分、秒) の配列も作成します。すべての配列は、同じサイズ (またはいずれかがスカラー) でなければなりません。入力引数は日付ベクトル [Y M D H MI S] として指定することもできます。
は t = datetime(Y,M,D,H,MI,S,MS)MS (ミリ秒) 配列を追加します。すべての配列は、同じサイズ (またはいずれかがスカラー) でなければなりません。
は、前述の構文の入力引数のいずれかに加え、1 つ以上の名前と値のペアの引数を使用して追加のオプションを指定します。たとえば、名前と値のペアの引数 t = datetime(___,Name,Value)'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に日付を表す指定子が含まれていない場合、datetimeはDateStringsの値を現在の日付と見なします。infmtに時刻を表す指定子が含まれていない場合、datetimeはDateStringsの値を深夜 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 が受け入れる文字識別子は、関数 datestr、datenum および datevec で使用される識別子とは異なります。
データ型: char | string
日付ベクトルは、m 行 6 列または m 行 3 列の行列として指定され、それぞれが m の日付ベクトルの全部または一部を含みます。
完全な日付ベクトルには、年、月、日、時間、分、および秒をこの順序で指定する 6 つの要素があります。
部分的な日付ベクトルには、年、月、および日付をこの順序で指定する 3 つの要素があります。
DateVector の各要素は、秒の要素を除き、正または負の整数値でなければなりません。秒の要素は非整数の場合もあります。ある要素が通常の範囲外である場合、datetime ではその日付ベクトル要素と直前の要素の両方が調整されます。たとえば、分の要素が 70 である場合、datetime では時間の要素が 1 増やされて、分の要素が 10 に設定されます。分の要素が -15 である場合、datetime では時間の要素の値が 1 減らされて、分の要素の値が 45 に設定されます。
いずれかの値が
NaNの場合、対応するdatetime値はNaTになります。いずれかの値が
Infまたは-Infの場合、対応するdatetime値はInfまたは-Infになります。
例: [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]として指定できます。Y、M、Dのいずれかの入力の要素が通常の範囲を超える場合、datetimeではその要素と直前の入力の同じ要素の両方が調整されます。詳細は、DateVectors入力引数の説明を参照してください。いずれかの値が
NaNの場合、対応するdatetime値はNaTになります。いずれかの値が
Infまたは-Infの場合、対応するdatetime値はInfまたは-Infになります。
例: 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]として指定できます。Y、M、D、H、MI、Sのいずれかの入力の要素が通常の範囲を超える場合、datetimeではその要素と直前の入力の同じ要素の両方が調整されます。詳細は、DateVectors入力引数の説明を参照してください。いずれかの値が
NaNの場合、対応するdatetime値はNaTになります。いずれかの値が
Infまたは-Infの場合、対応するdatetime値はInfまたは-Infになります。
例: 2003,10,24,12,45,07.451
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
年、月、日、時、分、秒およびミリ秒の配列。数値配列として指定します。これらの配列は同じサイズでなければなりませんが、代わりにスカラーにすることもできます。Y,M,D,H,MI,S の配列は、整数値を含まなければなりません。MS は小数のミリ秒を含むことができます。
Y、M、D、H、MI、S、MS のいずれかの入力の要素が通常の範囲を超える場合、datetime によってその要素と、直前の入力の同じ要素が両方とも調整されます。詳細は、DateVectors 入力引数の説明を参照してください。
いずれかの値が
NaNの場合、対応するdatetime値はNaTになります。いずれかの値が
Infまたは-Infの場合、対応するdatetime値はInfまたは-Infになります。
例: 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 の値のタイプ。次のいずれかの値として指定します。
|
|
|
|---|---|
|
| 0000 年 1 月 0 日からの日数 (先発 ISO 暦)。 |
|
| 1900 年 1 月 0 日からの日数。 Excel® の日付値は、最も近いマイクロ秒に丸められます。 メモ: Excel は誤って 1900 年をうるう年であると見なしています。したがって、Excel の日付値を計算するときには、1900 年 2 月 28 日と 1900 年 3 月 1 日の間に 1 日余分な日が入り、不連続性が発生します。 |
|
| 1904 年 1 月 0 日からの日数。 Excel の日付値は、最も近いマイクロ秒に丸められます。 メモ: Excel は誤って 1900 年をうるう年であると見なしています。したがって、Excel の日付値を計算するときには、1900 年 2 月 28 日と 1900 年 3 月 1 日の間に 1 日余分な日が入り、不連続性が発生します。 |
|
| 紀元前 4714 年 11 月 24 日午後 0 時 (UTC) からの日数 (先発グレゴリオ暦)。 タイム ゾーンを指定せずに 例: ニューヨークのタイム ゾーンを使用して T = datetime(X,'ConvertFrom','juliandate',... 'TimeZone','America/New_York') 次に、 T.TimeZone = '' |
|
| 1858 年 11 月 17 日午前 0 時 (UTC) からの日数。 タイム ゾーンを指定せずに 例: ニューヨークのタイム ゾーンを使用して T = datetime(X,'ConvertFrom','modifiedjuliandate',... 'TimeZone','America/New_York') 次に、 T.TimeZone = '' |
|
| 1970 年 1 月 1 日 00:00:00 (UTC) からの秒数 (うるう秒のカウントなし)。 タイム ゾーンを指定せずに 例: ニューヨークのタイム ゾーンを使用して T = datetime(X,'ConvertFrom','posixtime',... 'TimeZone','America/New_York') 次に、 T.TimeZone = '' |
|
| YYYYMMDD の数値で表される日付。たとえば、 |
| 1900 年 1 月 1 日 00:00:00 (UTC) からの "時間刻み" の数 (個々の時間刻みは 2^-32 秒) |
| 0001 年 1 月 1 日 00:00:00 (UTC) からの "時間刻み" の数 (個々の時間刻みは 100 ns) |
| 1601 年 1 月 1 日 00:00:00 (UTC) からの "時間刻み" の数 (個々の時間刻みは 100 ns) |
| J2000 からの経過時間 (ナノ秒単位)。Common Data Format (CDF) は、 入力
メモ: J2000 は地球時 (TT) 2000 年 1 月 1 日 12:00 です。TT は次の 2 つの点で UTC と異なります。
その結果、J2000 は次のように、 D = datetime(2000,1,1,11,58,55,816,"TimeZone","UTCLeapSeconds") D = 2000-01-01T11:58:55.816Z 例: 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
|
| 既定のエポック時刻からの秒数。 既定のエポック時刻は 1970 年 1 月 1 日 00:00:00 (UTC) です。 例: 既定のエポック時刻を使用して T = datetime(X,'ConvertFrom','epochtime') |
|
| 特定のエポックからの秒数 エポックを指定するには、追加の名前と値の引数 例: 2000 年 1 月 1 日午前 0 時をエポックとして使用して T = datetime(X,'ConvertFrom',... 'epochtime','Epoch','2000-01-01') |
| エポック時刻からの "時間刻み" の数。
例: 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 の値 | 説明 |
|---|---|
|
| 既定の表示形式を使用します。 |
|
| 入力形式 |
文字ベクトルまたは string スカラー | 文字ベクトルまたは string スカラーで指定された形式を使用します。 |
独自の形式を指定する場合は、有効な文字識別子を使用しなければなりません。すべての有効な文字識別子の一覧については、Format プロパティを参照してください。
出荷時の既定の形式はシステムのロケールに依存します。既定の表示形式を変更するには、既定の datetime 形式を参照してください。
'InputFormat' パラメーターを指定せずに DateStrings の入力を指定した場合、datetime は Format の値に基づいて DateStrings を解釈しようとします。
例: 'Format','eeee, MMMM d, yyyy HH:mm:ss' は、日付と時刻を水曜日, 4 月 9, 2014 21:41:06 のような形式で表示します。
データ型: char | string
入力引数 DateStrings の値のロケール。'Locale' と、文字ベクトルまたは string スカラーで構成されるコンマ区切りのペアとして指定します。Locale の値により、datetime が DateStrings を解釈する方法が決まります。ただし、出力の datetime 値を表示する方法は、これでは決まりません。
Locale の値は次のいずれかになります。
"system"。システムのロケールを使用します。の形式の string スカラーまたは文字ベクトル。xx_YYxxは 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 値は常に、MATLAB® の [設定] ウィンドウの [日付と時刻の形式] セクションにある [ロケール] オプションで指定された言語で表示されます。
datetime の表示に使用する既定のロケールを変更する方法については、Modify Command Window Settingsを参照してください。
異なるロケールを使用して datetime 値をテキストに変換するには、関数
char、cellstrまたは、stringを使用します。
データ型: 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 の値 | 説明 |
|---|---|
| 既定の表示形式を使用します。 |
文字ベクトルまたは 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 が受け入れる文字識別子は、関数 datestr、datenum および 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 を付けない表記のグレゴリオ暦年。グレゴリオ暦年の値では、紀元後の年が正の値、紀元前の年が負の値で表され、0 年はありません。この表の後のメモを参照してください。 | 2014 |
yy | 下 2 桁のみの表記のグレゴリオ暦年。グレゴリオ暦年の値では、紀元後の年が正の値、紀元前の年が負の値で表され、0 年はありません。この表の後のメモを参照してください。 | 14 |
yyy, yyyy ... | 'y' の数に対応する桁数以上で表記したグレゴリオ暦年。グレゴリオ暦年の値では、紀元後の年が正の値、紀元前の年が負の値で表され、0 年はありません。 | 2014 年の場合、'yyy' では 2014 と表示され、'yyyyy' では 02014 と表示されます。 |
u, uu, ... | ISO 年。年を単一の数値で表したものです。ISO 年では、紀元後の年が正の値、紀元前の年が負の値で表され、紀元前 1 年が 0 年になります。 | 2014 |
Q | 1 桁表記の四半期 | 2 |
QQ | 2 桁表記の四半期 | 02 |
QQQ | 省略形で表記した四半期 | Q2 |
QQQQ | 完全名で表記した四半期 | 第2四半期 |
M | 1 桁または 2 桁の数値で表記した月 | 4 |
MM | 2 桁の数値で表記した月 | 04 |
MMM | 短縮名で表記した月 | 4月 |
MMMM | 完全名で表記した月 | 4月 |
MMMMM | 大文字の頭文字で表記した月 | A |
W | 1 桁表記の月間通算週 | 2 |
d | 1 桁または 2 桁表記の月間通算日 | 9 |
dd | 2 桁表記の月間通算日 | 09 |
D | 1 ~ 3 桁表記の年間通算日 | 99 |
DD | 2 桁表記の年間通算日 | 99 |
DDD | 3 桁表記の年間通算日 | 099 |
e | 1 桁または 2 桁の数値で表記した曜日 | 4 (週の始まりは日曜日) |
ee | 2 桁の数値で表記した曜日 | 04 |
eee | 短縮名で表記した曜日 | 水 |
eeee | 完全名で表記した曜日 | 水曜日 |
eeeee | 先頭文字で表記した曜日 | 水 |
a | 午前と午後の区分 | 午後 |
h | 1 桁または 2 桁表記の 12 時間制の時間 | 9 |
hh | 2 桁表記の 12 時間制の時間 | 09 |
H | 1 桁または 2 桁表記の 24 時間制の時間 | 21 |
HH | 2 桁表記の 24 時間制の時間 | 21 |
m | 1 桁または 2 桁表記の分 | 41 |
mm | 2 桁表記の分 | 41 |
s | 1 桁または 2 桁表記の秒 | 6 |
ss | 2 桁表記の秒 | 06 |
S, SS, ..., SSSSSSSSS | 'S' の数に対応する桁数で表記した秒の小数部 (最大 9 桁) | 'SSS' の場合、6.12345 秒は 6.123 までに切り捨てられます。 |
メモ
一部の識別子の動作は、ロケール、入力データ、他の識別子の値、または追加の識別子の有無によって変わります。
ロケールの影響:
曜日名や月名などのローカライズされた名前を表示または解釈する際、
datetime識別子は確立された国際規格に従います。異なるロケール間で同様の動作を確保するには、ロケール依存の動作を示す識別子の使用は避けてください。一般に、このような識別子はロケール依存の曜日名や月名、またはロケール依存のタイム ゾーン オフセットを指定します。
ロケール依存の識別子には、
MMM、MMMM、eee、eeee、z、ZZZZがあります。
大きな年の値の影響:
紀元後 144683 年より後または紀元前 140743 年より前の
datetime値については、Formatプロパティで指定された識別子に関係なく、年番号のみが表示されます。
日と年の識別子の影響:
2 桁の年番号を読み取る場合に形式を
yまたはyyとして指定すると、その年の世紀はピボット年に基づいて判別されます。年間通算日番号を読み取る場合に年間通算日 (
D) とグレゴリオ年 (y) の両方の識別子を含む形式を指定すると、datetimeは年間通算日番号を正確に読み取らないことがあります。yの代わりに ISO 年 (u) を使用してください。ゼロに近い年番号を扱うときは、識別子
yの代わりに識別子uを 1 つ以上使用します。
追加の識別子の影響:
一般に、表に示されているよりも多くの数の識別子を指定すると、
datetimeはその識別子の表示形式の先頭をゼロでパディングします。たとえば、
uuuu-MM-dd HHHH:mm:ssのように時間識別子をHHHHと指定すると、2024 年 1 月 1 日の午後 12 時 30 分の表示では、時間フィールドの先頭が 2 つのゼロでパディングされます。d = datetime(2024,1,1,12,30,0); d.Format = "uuuu-MM-dd HHHH:mm:ss"d = datetime 2024-01-01 0012:30:00
同様に、テキスト入力の先頭のゼロは通常、先頭のゼロを無視しても
datetimeで解析可能な入力形式になる場合、無視されます。d = datetime("2024-01-01 0012:30:00")d = datetime 2024-01-01 12:30:00
タイム ゾーン オフセットの形式
タイム ゾーン オフセットの表示形式を指定するには、次の識別子を使用します。タイム ゾーン オフセットは、特定の datetime と UTC との時差です。タイム ゾーンには、タイム ゾーン オフセットを決定するルールがあり、オフセットは 1 年のうちの時期に応じて異なります。タイム ゾーン オフセットの指定子を datetime 配列の表示形式に含めると、表示する時刻の成分を明確に指定できます。
| 文字識別子 | 説明 | 表示 |
|---|---|---|
z | タイム ゾーン オフセットの省略名。この値が指定されていない場合、タイム ゾーン オフセットには この識別子は、タイム ゾーン オフセットの短いローカライズ バージョンを指定します。その動作はロケールに依存します。 | EDT |
Z | ISO 8601 基本形式。時、分、秒 (オプション) の各フィールドがあります。 | -0400 |
ZZZZ | 長い UTC 形式。 この識別子は、タイム ゾーン オフセットの長いローカライズ バージョンを指定します。その動作はロケールに依存します。 | UTC-04:00 |
ZZZZZ | ISO 8601 拡張形式。時、分、秒 (オプション) の各フィールドがあります。ISO 8601 UTC 指定子 "Z" として 0 の時間オフセットが表示されます。 | -04:00 |
x または X | ISO 8601 基本形式。時、分 (オプション) の各フィールドがあります。X を指定すると、ISO 8601 UTC 指定子 "Z" として 0 の時間オフセットが表示されます。 | -04 |
xx または XX | ISO 8601 基本形式。時、分の各フィールドがあります。XX を指定すると、ISO 8601 UTC 指定子 "Z" として 0 の時間オフセットが表示されます。 | -0400 |
xxx または XXX | ISO 8601 拡張形式。時、分の各フィールドがあります。XXX を指定すると、ISO 8601 UTC 指定子 "Z" として 0 の時間オフセットが表示されます。 | -04:00 |
xxxx または XXXX | ISO 8601 基本形式。時、分、秒 (オプション) の各フィールドがあります。XXXX を指定すると、ISO 8601 UTC 指定子 "Z" として 0 の時間オフセットが表示されます。 | -0400 |
xxxxx または XXXXX | ISO 8601 拡張形式。時、分、秒 (オプション) の各フィールドがあります。XXXXX を指定すると、ISO 8601 UTC 指定子 "Z" として 0 の時間オフセットが表示されます。 | -04:00 |
タイム ゾーン。文字ベクトルまたは string スカラーとして指定します。このプロパティを設定して、datetime 配列を作成した後にタイム ゾーンを変更できます。
タイム ゾーンを設定して、タイム ゾーンのオフセットを計算するには、datetime データ型は、IANA タイム ゾーン データベースの Internet Assigned Numbers Authority (IANA) で提供されているコードとデータを使用します。datetime で現在使用されているバージョンには、IANA からの最新の更新が含まれています (datetime で使用されているバージョンを取得するために、関数 timezones の 2 つ目の出力を返します)。
次の表に、TimeZone プロパティを設定するために指定できる値を示します。
指定した値 | 結果として得られるタイム ゾーン |
|---|---|
| タイム ゾーンはありません。 |
IANA タイム ゾーン データベースのタイム ゾーン地域の名前 例: | その地域で使用される標準および夏時間の UTC オフセットについて、現在および過去の規則が考慮されるタイム ゾーン地域。IANA タイム ゾーンの完全な一覧については、 |
ISO 8601 の 例: 例: | UTC からの固定オフセットのタイム ゾーン。string は、 |
例: 例: | UTC からの固定オフセットのタイム ゾーン。 |
| 協定世界時。 |
| タイム ゾーンでうるう秒も考慮される協定世界時。 |
|
|
次の表に 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 プロパティをうるう年でない年に設定すると、その日の Day と Month のプロパティが 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 プロパティの値が適切な範囲になるように Day、Month、Year のプロパティが調整されます。たとえば、時間番号 -1 は前の日の 23 時に相当します。
夏時間に従う特定のタイム ゾーンの datetime 配列には、以下の条件が適用されます。
夏時間開始時の時間の隙間によって生じる存在しない datetime を作成する値を
Hourプロパティに指定した場合は、Hourプロパティが 1 時間後の時刻に調整されます。夏時間終了時の時間のオーバーラップによって生じるあいまいな datetime を作成する値を
Hourプロパティに指定した場合は、2 つの時刻のうち標準時で 2 番目にあたる時刻に datetime が調整されます。
datetime 配列の各値の分番号。サイズおよび形状が datetime 配列と同じ数値配列として指定します。それぞれの分番号は 0 から 59 までの整数値です。範囲外の値を指定した場合、Minute プロパティの値が適切な範囲になるように Hour、Day、Month、Year のプロパティが調整されます。たとえば、分番号 -1 は前の時刻の 59 分に対応します。
datetime 配列の各値の秒数。サイズおよび形状が datetime 配列と同じ数値配列として指定します。それぞれの秒の値は浮動小数点値で、通常は 0 以上 60 未満の範囲になります。範囲外の値を設定した場合、Second プロパティの値が適切な範囲になるように Minute、Hour、Day、Month、Year のプロパティが調整されます。たとえば、-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
9-Aug-2025 12:05:51 -0400
韓国のソウルのタイム ゾーンにおける現在の日付と時刻を指定します。
t = datetime('now','TimeZone','Asia/Seoul','Format','d-MMM-y HH:mm:ss Z')
t = datetime
10-Aug-2025 01:05:51 +0900
文字ベクトルの cell 配列から datetime 配列を作成します。
DateStrings = {'2014-05-26';'2014-08-03'};
t = datetime(DateStrings,'InputFormat','yyyy-MM-dd')t = 2×1 datetime
26-May-2014
03-Aug-2014
t の datetime 値は、入力日付の形式ではなく既定の形式を使用して表示されます。
R2016b 以降では、関数 string を使用して string 配列を作成し、その後 datetime 値に変換することができます。
str = ["2016-03-24","2016-04-19"]
str = 1×2 string
"2016-03-24" "2016-04-19"
入力形式を yyyy-MM-dd に指定して、string を変換します。str が string 配列であっても、形式は文字ベクトルとして指定しなければなりません。
t = datetime(str,'InputFormat','yyyy-MM-dd')
t = 1×2 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 = 3×1 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 = 3×1 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 = 2×2 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 = 2×2 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 = 3×1 datetime
31-Jan-2014
30-Jan-2013
31-Jan-2012
名前と値のペアの引数 Format を使用して出力のカスタム表示形式を指定します。
t = datetime(Y,M,D,'Format','eeee, MMMM d, y')
t = 3×1 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 = 2×2 datetime
20-Apr-2008 01-Jun-2008
09-Sep-2008 18-Dec-2008
ヒント
関数
datetimeの一覧については、日付と時刻を参照してください。datetime配列を入力引数として受け入れる MATLAB の主要な関数の一覧については、日付と時刻の配列をサポートする主要な関数を参照してください。
拡張機能
datetime 関数は tall 配列をサポートしていますが、以下の使用上の注意および制限があります。
cell 配列内の string 配列または文字ベクトルに tall datetime 配列を作成するときは、入力に datetime 形式を必ず指定します。
'Format'を'preserveinput'として指定した場合、MATLAB は形式を判別するために tall 配列を評価しなければならない場合があります。
詳細については、tall 配列を参照してください。
使用上の注意および制限:
R2020a 以降、コード生成用の MATLAB コードで
datetime配列を使用できます。詳細については、datetime 配列のコード生成 (MATLAB Coder)とコード生成における datetime 配列の制限事項 (MATLAB Coder)を参照してください。
スレッドベースの環境
MATLAB® の backgroundPool を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool を使用してコードを高速化します。
使用上の注意および制限:
DateStringsのテキストからdatetime配列を作成するときには、入力形式infmtを指定します。
詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2014b で導入一般的な日付と時刻の形式について、datetime 形式の解析パフォーマンスが大幅に向上しています。一般的な区切り記号で区切られた文字識別子で構成されるほとんどの日付と時刻の形式において、パフォーマンスの向上が見られます。
文字識別子は、日付フィールド、時間フィールド、タイム ゾーン オフセットなどの形式の成分を指定します。識別子の一覧については、
datetimeのFormatプロパティを参照してください。一般的な区切り記号は、
":"、";"、","、"."、"-"、"/"、および空白文字です。
一般的な入力形式の例を次に示します。
"dd.MM.uuuu""MM/dd/uuuu""uuuu MM dd""HH:mm, dd MMMM uuuu Z""uuuu MMM dd HH:mm:ss.SSS a ZZZZZ""uuuu-MM-dd'T'HH:mm""QQQ/uuuu"
R2025a では、D、G、Q、QQ、W、y、yy、および z を含む入力形式については向上は見られません。(前の文で記載された識別子のみが該当します。QQQ や yyyy などの識別子を使用する場合はパフォーマンスの向上が見られます。)
datetime 関数を使用してテキストの解析と変換を行うコードは、入力配列のサイズと形式に応じて、一般に約 4 ~ 17 倍速くなります。たとえば、次のコードは解析パフォーマンスが向上する例を示しています。ピリオドを区切り記号として使用する日付の string 配列を作成します。string 配列内の日付では dd.MM.uuuu 形式が使用されます。次に、コードは datetime 関数を使用して string 配列を解析して変換します。以前のリリースと比較して、このコードは約 9.6 倍速くなっています。
function timingTest s = randi([1,31],1e6,1) + ".10.2024"; d = datetime(s,InputFormat="dd.MM.uuuu"); end
おおよその実行時間は以下のとおりです。
R2024b: 3.27 秒
R2025a: 0.34 秒
このコードの時間測定では、Windows® 11、AMD EPYC™ 74F3 24 コア プロセッサ (3.19 GHz) 搭載のテスト システムで、関数 timeit を使用しました。
timeit(@timingTest)
ローカライズされた名前またはタイム ゾーン オフセットを含む一般的な形式を解析する際の datetime 形式の解析パフォーマンスが大幅に向上しています。次のリストに、このような形式の例をいくつか示します。これらは、datetime 形式の解析パフォーマンスを向上させるために進めている取り組みの一部です。
dd-MMM-uuuu HH:mm:ssMMMM/dd/uuuuQQQ-uuuuuuuu-MM-dd HH:mm:ss Zuuuu-MM-dd HH:mm:ss.SSS xxx
たとえば、次のコードは、4 月のローカライズされた略語を使用する日付の string 配列を作成します。string 配列内の日付では dd-MMM-uuuu HH:mm:ss 形式が使用されます。ここで、MMM 指定子は省略された月の名前を表します。次に、コードは datetime 関数を使用して string 配列を解析して変換します。以前のリリースと比較して、このコードは約 17 倍速くなっています。
function timingTest s = "23-Apr-2024 11:30:" + randi([10,59],10000,1); for i = 1:100 d = datetime(s, ... InputFormat="dd-MMM-uuuu HH:mm:ss", ... Locale="en_US"); end end
おおよその実行時間は以下のとおりです。
R2024a: 4.75 秒
R2024b: 0.27 秒
同様に、次のコードは、タイム ゾーン オフセットが -0400 である日付の string 配列を作成します。string 配列内の日付では uuuu-MM-dd HH:mm:ss.SSS Z 形式が使用されます。ここで、Z 指定子はタイム ゾーン オフセットを表します。次に、コードは datetime 関数を使用して string 配列を解析して変換します。以前のリリースと比較して、このコードは約 5.8 倍速くなっています。
function timingTest s = "2024-04-23 11:32:48." + randi(999,10000,1) + " -0400"; for i = 1:100 d = datetime(s, ... InputFormat="uuuu-MM-dd HH:mm:ss.SSS Z", ... TimeZone="local"); end end
おおよその実行時間は以下のとおりです。
R2024a: 6.35 秒
R2024b: 1.10 秒
どちらの場合も、このコードの時間測定では、Windows 11、AMD EPYC 74F3 24 コア プロセッサ (3.19 GHz) 搭載のテスト システムで、関数 timeit を使用しました。
timeit(@timingTest)
一般的な形式を解析する際の datetime 形式の解析パフォーマンスが大幅に向上しています。一般に、最良のパフォーマンスが得られるのは、ISO 8601 形式などの数値指定子のみを使用する形式のテキスト タイムスタンプの場合です。次のリストに、このような形式の例をいくつか示します。これらは、datetime 形式の解析パフォーマンスを向上させるために進めている取り組みの一部です。
uuuu-MM-ddおよびyyyy-MM-ddMM/dd/uuuuおよびMM/dd/yyyyuuuu-MM-dd'T'HH:mm:ss.SSS'Z'およびyyyy-MM-dd'T'HH:mm:ss.SSS'Z'
たとえば、次のコードは、一連の日付を含む string 配列を作成してから解析します。string 配列内の日付は uuuu-MM-dd 数値形式です。関数 datetime は、形式を認識して string を解析し、datetime 値を返します。以前のリリースと比較して、このコードは約 16 倍速くなっています。
function timingTest() d1 = datetime(2024,1,1:10000); s = string(d1,"uuuu-MM-dd"); for i = 1:100 d2 = datetime(s); end end
おおよその実行時間は以下のとおりです。
R2023b: 3.13 秒
R2024a: 0.19 秒
このコードの時間測定では、Windows 11、AMD® EPYC 74F3 24 コア プロセッサ (3.19 GHz) 搭載のテスト システムで、関数 timeit を使用しました。
timeit(@timingTest)
R2020a 以降、名前と値の引数 'InputFormat' で曜日、月、四半期の 1 文字または 2 文字の識別子を指定した場合に、それらの識別子で名前が認識されなくなりました。これらでは数字のみが認識されます。
同様に、曜日、月、四半期の短縮名を表す 3 文字の識別子で完全名が認識されなくなりました。これらでは短縮名のみが認識されます。
次の表に、これらの識別子について、認識される値と認識されない値の両方の例を示します。
識別子 | 認識される例 | 認識されない例 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
以前のリリースでは、これらの 1 文字、2 文字、および 3 文字のすべての識別子で、それぞれ曜日、月、四半期の短縮名と完全名の両方が認識されていました。たとえば、ee で Wed が水曜日と認識され、MM で Apr が 4 月と認識され、QQ で Q2 が第 2 四半期と認識されていました。同様に、eee で Wednesday、MMM で April、QQQ で 2nd quarter が認識されていました。
形式の識別子の詳細については、datetime の Format プロパティを参照してください。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)