ドキュメンテーション

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

datevec

日付と時刻を成分のベクトルに変換

関数 datevec は数値配列を作成し、その値は日付と時刻の成分である年、月、時、分、秒を表します。ただし、時点を表す最良の方法は、datetime のデータ型を使用することです。経過時間を表す最良の方法は、duration または calendarDuration のデータ型を使用することです。

構文

DateVector = datevec(t)
DateVector = datevec(DateNumber)
DateVector = datevec(DateString)
DateVector = datevec(DateString,formatIn)
DateVector = datevec(DateString,PivotYear)
DateVector = datevec(DateString,formatIn,PivotYear)
[Y,M,D,H,MN,S] = datevec(___)

説明

DateVector = datevec(t) は、入力配列 t の datetime 値または duration 値を日付ベクトルに変換します。関数 datevec は、各行が t の値に対応する m 行 6 列の行列を返します。

DateVector = datevec(DateNumber) は、1 つ以上の日付値を日付ベクトルに変換します。関数 datevec は、m 個の日付ベクトルを含む m 行 6 列の行列を返します。m は、DateNumber 内の日付値の総数です。

DateVector = datevec(DateString) は、日付と時刻を表すテキストを日付ベクトルに変換します。テキストで使用されている形式が既知の場合は、形式を formatIn として指定します。formatIn なしの構文は、それを含む構文に比べて大幅に遅くなります。

DateVector = datevec(DateString,formatIn)formatIn を使用して、DateString で表された日付と時刻を解釈します。

DateVector = datevec(DateString,PivotYear)PivotYear を使用して、年を 2 文字で指定するテキストを解釈します。テキストで使用されている形式が既知の場合は、形式を formatIn として指定します。formatIn なしの構文は、それを含む構文に比べて大幅に遅くなります。

DateVector = datevec(DateString,formatIn,PivotYear)formatIn を使用して DateString で表された日付と時刻を解釈し、PivotYear を使用して年を 2 文字で指定するテキストを解釈します。formatIn および PivotYear は、いずれの順序でも指定できます。

[Y,M,D,H,MN,S] = datevec(___) は、日付ベクトルの成分を個々の変数 YMDHMNS (年、月、日、時、分、秒) として返します。関数 datevec、は秒 (S) 出力の小数部分としてミリ秒を返します。

すべて折りたたむ

format short g

t = [datetime('now');datetime('tomorrow')]
t = 2x1 datetime array
   02-Aug-2018 18:14:34
   03-Aug-2018 00:00:00

DateVector = datevec(t)
DateVector = 2×6

         2018            8            2           18           14       34.852
         2018            8            3            0            0            0

format short g

n = 733779.651;
datevec(n)
ans = 1×6

         2009            1            6           15           37         26.4

DateString = '28.03.2005';
formatIn = 'dd.mm.yyyy';
datevec(DateString,formatIn)
ans = 1×6

        2005           3          28           0           0           0

datevec は、形式 'dd.mm.yyyy' で日付を表すテキストの日付ベクトルを返します。

複数の日付を cell 配列内の文字ベクトルとして渡します。すべての入力日付に同じ形式を使用しなければなりません。

DateString = {'09/16/2007';'05/14/1996';'11/29/2010'};
formatIn = 'mm/dd/yyyy';
datevec(DateString,formatIn)
ans = 3×6

        2007           9          16           0           0           0
        1996           5          14           0           0           0
        2010          11          29           0           0           0

datevec('11:21:02.647','HH:MM:SS.FFF')
ans = 1×6
103 ×

    2.0180    0.0010    0.0010    0.0110    0.0210    0.0026

出力日付ベクトルでは、ミリ秒は、秒フィールドの小数部分です。テキスト '11:21:02.647' には、完全な日付ベクトルに変換するために十分な情報が含まれていません。既定の設定では、日付は 1、月は 1 月、年は現在の年です。

既定のピボット年を使用して、日付を表すテキストを日付ベクトルに変換します。

DateString = '12-jun-17';
formatIn = 'dd-mmm-yy';
DateVector = datevec(DateString,formatIn)
DateVector = 1×6

        2017           6          12           0           0           0

ピボット年を 1800 に指定して、同じ日付を日付ベクトルに変換します。

DateVector = datevec(DateString,formatIn,1800)
DateVector = 1×6

        1817           6          12           0           0           0

日付を表すテキストを日付ベクトルに変換して、日付ベクトルの成分を返します。

[y, m, d, h, mn, s] = datevec('01.02.12','dd.mm.yy')
y = 2012
m = 2
d = 1
h = 0
mn = 0
s = 0

入力引数

すべて折りたたむ

日付と時刻。datetime 値または duration 値の配列として指定します。

データ型: datetime | duration | calendarDuration

シリアル日付値。正の倍精度数値の配列として指定します。

例: 731878

データ型: double

日付と時刻を表すテキスト。ある時点を表すテキストが各行に含まれる文字配列、文字ベクトルの cell 配列、または string ベクトルとして指定します。文字配列のすべての行、あるいは cell ベクトルまたは string ベクトルのすべての要素は同じ形式でなければなりません。

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

例: ['19-Sep-2013';'20-Sep-2013';'21-Sep-2013']

例: {'15-Oct-2010' '20-Nov-2012'}

テキストで使用されている形式がわかっている場合は、formatIn も指定しなければなりません。formatIn を指定しない場合、DateString は、次の形式のいずれかでなければなりません。

日付と時刻を表すテキストの形式

'dd-mmm-yyyy HH:MM:SS'

01-Mar-2000 15:45:17

'dd-mmm-yyyy'

01-Mar-2000

'mm/dd/yyyy'

03/01/2000

'mm/dd/yy'

03/01/00

'mm/dd'

03/01

'mmm.dd,yyyy HH:MM:SS'

Mar.01,2000 15:45:17

'mmm.dd,yyyy'

Mar.01,2000

'yyyy-mm-dd HH:MM:SS'

2000-03-01 15:45:17

'yyyy-mm-dd'

2000-03-01

'yyyy/mm/dd'

2000/03/01

'HH:MM:SS'

15:45:17

'HH:MM:SS PM'

3:45:17 PM

'HH:MM'

15:45

'HH:MM PM'

3:45 PM

メモ

日付と時刻の形式を示すシンボリック識別子は、datetime 配列の表示形式を示すシンボリック識別子とは異なります。

一部の形式には、日付と時刻のテキスト表現を変換するために十分な情報が含まれていないことがあります。そのような場合、既定で、時、分、秒は 0、日付は 1、月は 1 月、年は現在の年になります。datevec および datenum は、2 文字の年 (たとえば '79') を、現在の年を中心として 100 年の範囲に入るものと見なします。

formatIn を指定しない場合、以下の点に注意してください。

  • 月を 2 桁 (mm) で指定する形式の場合、月の値が 12 を超えてはならない。

  • ただし、'mm/dd/yy' の形式では、テキストの 1 番目のエントリが 12 を超え、2 番目のエントリが 12 以下の場合、datevec は、そのテキストを 'yy/mm/dd' 形式であると見なします。

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

例: 'dddd, mmm dd, yyyy'

次の表に、文字ベクトル formatIn の作成に使用できるシンボリック識別子を示します。フィールドを区切るためのハイフン、スペース、コロンなどを含めることができます。

メモ

日付と時刻の形式を記述するシンボリック識別子は、datetime 配列の表示形式を記述するシンボリック識別子とは異なります。

シンボリック識別子

説明

yyyy

4 桁表記の年

1990, 2002

yy

2 桁表記の年

90, 02

QQ

文字 Q と 1 桁で表記する四半期

Q1

mmmm

フル ネームで表記する月

March, December

mmm

最初の 3 文字で表記する月

Mar, Dec

mm

2 桁表記の月

03, 12

m

大文字の頭文字で表記する月

M, D

dddd

フル ネームで表記する曜日

Monday, Tuesday

ddd

最初の 3 文字で表記する曜日

Mon, Tue

dd

2 桁表記の日

05, 20

d

大文字の頭文字で表記する曜日

M, T

HH

2 桁表記の時間
(シンボリック識別子 AM または PM が使用される場合は先頭の 0 なし)

05, 5 AM

MM

2 桁表記の分

12, 02

SS

2 桁表記の秒

07, 59

FFF

3 桁表記のミリ秒

057

AM or PM

時刻を表すテキストに挿入される AM または PM

3:45:02 PM

formatIn 値は次のガイドラインに従わなければなりません。

  • どのフィールドも複数回指定することはできません。たとえば、'yy-mmm-dd-m' は、2 つの月識別子を含むので使用できません。ただし、例外として、dd の 1 つのインスタンスは、他の日識別子の 1 つのインスタンスと組み合わせることができます。たとえば、'dddd mmm dd yyyy' は有効な入力です。

  • AM または PM を使用する場合は、HH フィールドも必要です。

  • datevec は、'QQ' を含む形式を受け入れません。

2 文字表記の年を含む 100 年の日付範囲の開始年を整数で指定します。ピボット年は、年が 2 文字で指定されている日付の解釈に使用されます。

formatIn に時刻が含まれる場合、現在の年月日の現在の時刻からピボット年が計算されます。それ以外の場合は、現在の年月日の午前 0 時から計算されます。

例: 2000

メモ

入力の日付形式で 4 文字の年が指定されている場合、末尾 2 文字は切り捨てられ、"最初" の 2 文字が年を指定します。たとえば、日付とピボット年が ('25122015','ddmmyyyy',2000) として指定されている場合、結果の日付は 25-12-2020 になります。25-12-2015 ではありません。

データ型: double

出力引数

すべて折りたたむ

日付ベクトル。m 行 6 列の行列として返されます。この行列の各行は 1 つの日付ベクトルに対応し、m は入力日付値または日付と時刻を表す文字ベクトルの総数です。

日付ベクトルの成分 (年、月、日、時、分、秒)。数値スカラーまたは数値ベクトルとして返されます。ミリ秒は、秒出力の小数部分です。datetime 配列 t の変換では、各成分は YearMonthDayHourMinuteSecond の各プロパティの値と等しくなります。たとえば、Y = t.Year のようになります。

制限

  • 日付ベクトルを計算するときに、datevec は、1 未満の月の値を 1 に設定します。1 より少ない日の値 D は、その前の月の最終日から |D| 差し引いた日の値に設定されます。ただし、0 ≤ DateNumber < 1 の場合、datevec(DateNumber) は、形式 [0 0 0 H MN S] の日付ベクトルを返します。ここで、HMNS は、それぞれ時、分、秒に対応します。

ヒント

  • ベクトル化された呼び出し構文を使用すると、大きな配列でパフォーマンスを大幅に改善できます。

拡張機能

R2006a より前に導入