Main Content

convertTo

datetime 値を数値表現に変換

説明

X = convertTo(D,dateType) は、Ddatetime 値を dateType で指定された数値表現に変換し、数値配列を返します。たとえば、dateType'posixtime' の場合、convertToD の各要素を、1970 年 1 月 1 日 00:00:00 (UTC) の "エポック" 以降の経過秒数に変換します。

すべての数値表現は、エポックと呼ばれる時点を基準にして日付と時刻を示します。コンピューターでは通常、指定されたエポックからの秒数または時間刻み数で時間が測定されます。

X = convertTo(D,'epochtime',Name,Value) は、名前と値のペアの引数を使用して、エポックと 1 秒あたりの時間刻み数を指定します。たとえば、エポックを 'Epoch','2001-01-01' と指定した場合、X の各値は、2001 年 1 月 1 日午前 0 時までの秒数またはそれ以降の秒数を表します。

すべて折りたたむ

datetime 値の配列を作成します。

D = datetime(2019,10:12,1,12,0,0)
D = 1x3 datetime
   01-Oct-2019 12:00:00   01-Nov-2019 12:00:00   01-Dec-2019 12:00:00

D を、Excel® 日付値を表す倍精度値の配列に変換します。(日付値のすべての桁を表示するには、数値表示形式を longg に設定します)。

format longg
X = convertTo(D,'excel')
X = 1×3

                   43739.5                   43770.5                   43800.5

D を、日付と時刻を .NET の時間で表す配列に変換します。.NET の時間は符号なし 64 ビット整数でなければならないため、convertTouint64 データ型の配列を返します。

X = convertTo(D,'.net')
X = 1x3 uint64 row vector

   637055280000000000   637082064000000000   637107984000000000

datetime 配列を作成します。タイム ゾーンが東京のゾーンになるように指定します。

D = datetime(2019,10:12,1,12,0,0,'TimeZone','Asia/Tokyo')
D = 1x3 datetime
   01-Oct-2019 12:00:00   01-Nov-2019 12:00:00   01-Dec-2019 12:00:00

D を変換します。時間を 2001 年 1 月 1 日以降の経過ミリ秒数として表すには、名前と値のペアの引数 EpochTicksPerSecond を指定します。エポックは、datetime 値として指定するか、日付と時刻を指定するために書式設定されたテキストとして指定できます。'epochtime' を指定した場合、出力は符号付き 64 ビット整数の配列になります。

X = convertTo(D,'epochtime','Epoch','2001-01-01','TicksPerSecond',1000)
X = 1x3 int64 row vector

   591624000000   594302400000   596894400000

D のタイム ゾーンが指定されていない場合、関数 convertToD の要素を 'epochtime' の指定時の UTC 時刻として扱います。

入力引数

すべて折りたたむ

入力の日付と時刻。datetime 配列として指定します。

出力数値表現のタイプ。次の表の値として指定します。

dateType の値により、出力配列のデータ型が決まります。一部の数値表現には、符号なしまたは符号付き 64 ビット整数が必要です。これらの要件に応じて、出力のデータ型は doubleuint64int64 のいずれかになります。

dateType の値

出力数値表現

出力データ型

'excel'

Excel® 日付値を表す、1900 年 1 月 0 日からの日数。このオプションは関数 exceltime と同等です。

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

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

double

'excel1904'

Excel 日付値を表す、1904 年 1 月 0 日からの日数。このオプションは関数 exceltime と同等です。

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

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

double

'juliandate'

ユリウス日を表す、先発グレゴリオ暦の紀元前 4714 年 11 月 24 日午後 0 時 (UTC) からの日数。このオプションは関数 juliandate と同等です。

メモ: D のタイム ゾーンが指定されていない場合、convertToD の値を現地時刻ではなく UTC 時刻として扱います。現地時刻を表すには、関数 convertTo を呼び出す前に、DTimeZone プロパティを使用してタイム ゾーンを指定します。

例: 東京のタイム ゾーンを使用して D を変換します。

D.TimeZone = 'Asia/Tokyo';
X = convertTo(D,'juliandate')

double

'modifiedjuliandate'

修正ユリウス日を表す、1858 年 11 月 17 日午前 0 時 (UTC) からの日数。このオプションは関数 juliandate と同等です。

メモ: D のタイム ゾーンが指定されていない場合、convertToD の値を現地時刻ではなく UTC 時刻として扱います。現地時刻を表すには、関数 convertTo を呼び出す前に、DTimeZone プロパティを使用してタイム ゾーンを指定します。

例: 東京のタイム ゾーンを使用して D を変換します。

D.TimeZone = 'Asia/Tokyo';
X = convertTo(D,'modifiedjuliandate')

double

'posixtime'

"Unix エポック" と呼ばれる 1970 年 1 月 1 日 00:00:00 (UTC) の時点からの秒数。このオプションは関数 posixtime と同等です。

"UNIX エポック時間" または "POSIX 時間" とも呼ばれる "Unix 時間" は、Unix エポックを基準にして時間を測定するためのシステムです (Unix 時間はうるう秒を無視するため、正確には UTC を表しません)。

メモ: D のタイム ゾーンが指定されていない場合、convertToD の値を現地時刻ではなく UTC 時刻として扱います。現地時刻を表すには、関数 convertTo を呼び出す前に、DTimeZone プロパティを使用してタイム ゾーンを指定します。

例: タイム ゾーンが東京のタイム ゾーンになるように指定して、D を変換します。

D.TimeZone = 'Asia/Tokyo';
X = convertTo(D,'posixtime')

double

'yyyymmdd'

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

double

'datenum'

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

double

'ntp'

Network Time Protocol (NTP) タイムスタンプを表す、1900 年 1 月 1 日 00:00:00 (UTC) からの "時間刻み" の数 (個々の時間刻みは 2^-32 秒)。

uint64

'.net'

Microsoft® .NET タイムスタンプを表す、0001 年 1 月 1 日 00:00:00 (UTC) からの "時間刻み" の数 (個々の時間刻みは 100 ns)。

uint64

'ntfs'

NTFS タイムスタンプを表す、1601 年 1 月 1 日 00:00:00 (UTC) からの "時間刻み" の数 (個々の時間刻みは 100 ns)。

uint64

'tt2000'

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

datetime 配列を TT2000 時間の配列に変換するには、datatime 配列の TimeZone プロパティを UTCLeapSeconds に変換します。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

例: D のタイム ゾーンを UTCLeapSeconds に設定します。その後、DTT2000 時間の配列に変換します。

D = datetime(2022,4,1:3,9,30,45, ...
             "TimeZone","UTCLeapSeconds");
D = D'
D = 
  3x1 datetime array
   2022-04-01T09:30:45.000Z
   2022-04-02T09:30:45.000Z
   2022-04-03T09:30:45.000Z
X = convertTo(D,"tt2000")
X =
  3x1 int64 column vector
   702077514184000000
   702163914184000000
   702250314184000000

int64

'epochtime'

指定したエポックからの秒数。このオプションは、名前と値のペアの引数 'Epoch''TicksPerSecond' と共に使用します。

メモ: D のタイム ゾーンが指定されていない場合、convertToD の値を現地時刻ではなく UTC 時刻として扱います。現地時刻を表すには、関数 convertTo を呼び出す前に、DTimeZone プロパティを使用してタイム ゾーンを指定します。

例: D のタイム ゾーンを指定します。次に、これを 2001 年 1 月 1 日以降の経過秒数に変換します。

D.TimeZone = 'Asia/Tokyo';
X = convertTo(D,'epochtime','Epoch','2001-01-01')

int64

名前と値の引数

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

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

例: convertTo(D,'epochtime','Epoch','2001-01-01','TicksPerSecond',1000) は、2001 年 1 月 1 日の開始以降のミリ秒数を返します。

時間測定に使用される時点。'Epoch'datetime スカラー、文字ベクトルまたは string スカラーで構成されるコンマ区切りのペアとして指定します。

'Epoch' の値が文字ベクトルまたは string スカラーの場合、関数 datetime で認識される形式 (2001 年 1 月 1 日を表す '2001-01-01' など) で日付と時刻を表さなければなりません。

既定値は、1970 年 1 月 1 日 00:00:00 (UTC) を表す Unix エポックです。

1 秒あたりの時間刻み。'TicksPerSecond' と数値スカラーで構成されるコンマ区切りのペアとして指定します。

拡張機能

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

バージョン履歴

R2018b で導入