ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

datetime

現在の日付に基づく配列の作成と日付文字列または日付値からの変換

関数 datetime は、先発 ISO 暦を使用して複数の時点を表す配列を作成します。datetime 値にはナノ秒までの精度をもつ柔軟な表示形式があり、タイム ゾーン、夏時間およびうるう秒を考慮できます。

構文

t = datetime
t = datetime(relativeDay)
t = datetime(DateStrings)
t = datetime(DateStrings,'InputFormat',infmt)
t = datetime(DateVectors)
t = datetime(Y,M,D)
t = datetime(Y,M,D,H,MI,S)
t = datetime(Y,M,D,H,MI,S,MS)
t = datetime(X,'ConvertFrom',dateType)
t = datetime(___,Name,Value)

説明

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 = datetime(DateVectors) は、DateVectors の日付ベクトルから datetime 値の列ベクトルを作成します。

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

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

t = datetime(Y,M,D,H,MI,S,MS) は、YMDHMISMS (年、月、日、時、分、秒、ミリ秒) の配列の各要素に対応する datetime 値からなる配列を作成します。配列は、同じサイズ (またはいずれかがスカラー) でなければなりません。

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 の値を指定します。

すべて折りたたむ

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

t = datetime('now','TimeZone','local','Format','d-MMM-y HH:mm:ss Z')
t = datetime
   9-Feb-2017 11:32:56 -0500

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

t = datetime('now','TimeZone','Asia/Seoul','Format','d-MMM-y HH:mm:ss Z')
t = datetime
   10-Feb-2017 01:32:56 +0900

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

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

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

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

str = string({'2016-03-24','2016-04-19'})
str = 1×2 string array
    "2016-03-24"    "2016-04-19"

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

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

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

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

DateStrings = {'2014-05-26T13:30-05:00';'2014-08-26T13:30-04:00';'2014-09-26T13:30Z'}
DateStrings = 3×1 cell array
    '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 array
   26-May-2014 18:30:00
   26-Aug-2014 17:30:00
   26-Sep-2014 13:30:00

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

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

C = {'8 avril 2013','9 mai 2013';'10 juin 2014','11 juillet 2014'}
C = 2×2 cell array
    '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 array
   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 array
   31-Jan-2014
   30-Jan-2013
   31-Jan-2012

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

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

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

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

       39558       39600
       39700       39800

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

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

入力引数

すべて折りたたむ

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

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

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

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

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

例: string({'11-Nov-2016' '12-Dec-2016'})

データ型: char | cell | string

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

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

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

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

Format の値
'yyyy-MM-dd'2014-04-19
'dd/MM/yyyy'19/04/2014
'dd.MM.yyyy'19.04.2014
'yyyy年 MM月 dd日'2014年 04月 19日
'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

すべての有効な文字識別子の一覧については、datetime 配列の Format プロパティを参照してください。

メモ

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

データ型: char

日付ベクトルは、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

年、月、日の配列。スカラー、ベクトル、行列または配列として指定します。これらは同じサイズでなければなりませんが、いずれか 1 つをスカラーにすることもできます。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

年、月、日、時、分、秒の配列。スカラー、ベクトル、行列または配列として指定します。これらは同じサイズでなければなりませんが、いずれか 1 つをスカラーにすることもできます。秒の入力 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

年、月、日、時、分、秒およびミリ秒の配列。スカラー、ベクトル、行列または配列として指定します。これらは同じサイズでなければなりませんが、いずれか 1 つをスカラーにすることもできます。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 日を表します。

'epochtime','Epoch',epochValue

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

さらに、epochValue を指定しなければなりません。これは、エポック時刻を表すスカラー datetime または文字ベクトルです。

例: 2000 年 1 月 1 日からの日数が返されます。

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

名前/値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。Name は引数名で、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

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

すべて折りたたむ

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

Format の値説明

'default'

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

'defaultdate'

時刻の成分を含めずに作成された datetime 値用の既定の表示形式を使用します。

'preserveinput'

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

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

Format の値は、文字 A-Z および a-z を使用して独自に構成することもできます。これらの文字は Unicode® LDML (Locale Data Markup Language) の標準の日付表記に対応します。フィールドの区切りとして、ASCII 以外の文字やハイフン、スペース、コロンなどの記号を含めることができます。文字 A ~ Z および a ~ z をリテラル文字として形式に含めるには、文字を単一引用符で囲みます。

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

次の表に、一般的な表示形式と、ニューヨーク市の 2014 年 4 月 19 日 (土) 9:41:06 PM の書式設定された出力の例を示します。すべての有効な文字識別子の一覧については、datetime 配列の Format プロパティを参照してください。

Format の値
'yyyy-MM-dd'2014-04-19
'dd/MM/yyyy'19/04/2014
'dd.MM.yyyy'19.04.2014
'yyyy年 MM月 dd日'2014年 04月 19日
'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

メモ

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

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

データ型: char

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

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

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

  • xx_YY の形式の文字ベクトル。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

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

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

例: 'PivotYear',1900

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

タイム ゾーン地域。'TimeZone' と文字ベクトルで構成されるコンマ区切りのペアとして指定します。TimeZone の値を指定すると、関数 datetime で入力データを解釈するときにそのタイム ゾーンが使用されます。また、出力配列 T でも TimeZone で指定したタイム ゾーンが使用されます。入力データがタイム ゾーンを含む文字ベクトルである場合、関数 datetime はすべての値を指定されたタイム ゾーンに変換します。

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

  • ''。特定のタイム ゾーンに属さない "ゾーンなし" の datetime 配列を作成します。

  • IANA タイム ゾーン データベースのタイム ゾーン地域の名前 (例 'America/Los_Angeles')。タイム ゾーン地域の名前では、各地域で使用される標準時および夏時間の UTC からのオフセットについて、現在および過去に実施されたルールが考慮されます。

  • ISO 8601 の +HH:mm または -HH:mm の形式の文字ベクトル (例 '+01:00')。UTC からの固定オフセットのタイム ゾーンを指定します。

  • 'UTC'。協定世界時に基づいて datetime 配列を作成します。

  • 'UTCLeapSeconds'。うるう秒が考慮された協定世界時に基づいて datetime 配列を作成します。

  • 'local'。システムのタイム ゾーンに基づいて datetime 配列を作成します。

次の表に 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

出力引数

すべて折りたたむ

日付と時刻。datetime 配列として返されます。各要素に日付と時刻が格納されています。

t には次のプロパティがあります。

プロパティ説明
Formatt の値の表示形式。文字ベクトルとして指定します。
TimeZonet の値の解釈に使用されるタイム ゾーン。文字ベクトルとして指定します。
Yeart の各要素の年番号が格納された配列
Montht の各要素の月番号が格納された配列
Dayt の各要素の月間通算日番号が格納された配列
Hourt の各要素の時間番号が格納された配列
Minutet の各要素の分番号が格納された配列
Secondt の各要素の秒 (小数部を含む) が格納された配列

datetime 配列 t の作成後、ドット表記を使ってプロパティの値にアクセスしたり変更したりできます。たとえば、t の値を 'yyyy-MM-dd' の形式で表示するには次のように入力します。

t.Format = 'yyyy-MM-dd';

拡張機能

R2014b で導入

この情報は役に立ちましたか?