メインコンテンツ

テキスト ファイルからの日付と時刻のインポート

書式設定済みの日付と時刻 ("01/01/01""12:30:45" など) を列方向の表形式データから 3 つの方法でインポートします。

  • インポート ツール— 日付と時刻を対話的に選択してインポートします。

  • 関数 readtable — 日付と時刻を含む変数を自動的に検出して、table にインポートします。

  • インポート オプション — 日付と時刻の変数のインポートをより詳細に制御するために、readtable 関数を detectImportOptions 関数とともに使用します。たとえば、FillValueDatetimeFormat などのプロパティを指定できます。

この例では、これらの各メソッドを使用して、テキスト ファイルから日付と時刻をインポートする方法を説明します。

インポート ツール

インポートツールを使用して outages.csv ファイルを開きます。各列のドロップダウン メニューを使用して、日付と時刻の形式を指定します。あらかじめ定義されたデータ形式から選択するか、カスタム形式を入力します。OutageTime 列をインポートするために、カスタム形式 yyyy-MM-dd HH:mm を指定します。次に、[選択のインポート] ボタンをクリックして、ワークスペースにデータをインポートします。

The datetime format for the OutageTime table variable in the file outages.csv is yyyy-MM-dd HH:mm

関数 readtable

readtable 関数を使用して、変数 OutageTime10 行を表示します。readtable によって日付と時刻の変数と形式が自動的に検出されます。

filename = "outages.csv";
T = readtable(filename);
T.OutageTime(1:10)
ans = 10×1 datetime
   2002-02-01 12:18
   2003-01-23 00:49
   2003-02-07 21:15
   2004-04-06 05:44
   2002-03-16 06:18
   2003-06-18 02:49
   2004-06-20 14:39
   2002-06-06 19:28
   2003-07-16 16:23
   2004-09-27 11:09

インポート オプション

インポート オプション オブジェクトを使用して、日付と時刻の変数のインポートをより詳細に制御します。たとえば、日付と時刻の表示形式を変更したり、欠損している日付の埋め込み値を指定したりします。

outages.csv ファイルのインポート オプション オブジェクトを作成し、変数 RestorationTime の変数インポート オプションを表示します。関数 detectImportOptions は、変数のデータ型を自動的に検出します。

opts = detectImportOptions(filename);
getvaropts(opts,"RestorationTime")
ans = 
  DatetimeVariableImportOptions with properties:

   Variable Properties:
              Name: 'RestorationTime'
              Type: 'datetime'
         FillValue: NaT
    TreatAsMissing: {}
         QuoteRule: 'remove'
          Prefixes: {}
          Suffixes: {}
    EmptyFieldRule: 'missing'

   Datetime Options:
    DatetimeFormat: 'preserveinput'
    DatetimeLocale: 'en_US'
       InputFormat: ''
          TimeZone: ''

データをインポートし、変数 RestorationTime の最初の 10 行を表示します。2 番目の行には NaT が含まれ、日付と時刻の値が欠けていることが示されます。

T = readtable(filename,opts);
T.RestorationTime(1:10)   
ans = 10×1 datetime
   2002-02-07 16:50
   NaT             
   2003-02-17 08:14
   2004-04-06 06:10
   2002-03-18 23:23
   2003-06-18 10:54
   2004-06-20 19:16
   2002-06-07 00:51
   2003-07-17 01:12
   2004-09-27 16:37

日付と時刻の別の表示形式を使用するには、DatetimeFormat プロパティを更新したうえで、FillValue プロパティを使用して欠損値を現在の日付と時刻に置き換えます。更新された変数オプションを表示します。

opts = setvaropts(opts,"RestorationTime", ...
                       DatetimeFormat="MMM d, yyyy HH:mm:ss Z", ...
                       FillValue="now");
getvaropts(opts,"RestorationTime")
ans = 
  DatetimeVariableImportOptions with properties:

   Variable Properties:
              Name: 'RestorationTime'
              Type: 'datetime'
         FillValue: Jan 24, 2026 21:54:14 *
    TreatAsMissing: {}
         QuoteRule: 'remove'
          Prefixes: {}
          Suffixes: {}
    EmptyFieldRule: 'missing'

   Datetime Options:
    DatetimeFormat: 'MMM d, yyyy HH:mm:ss Z'
    DatetimeLocale: 'en_US'
       InputFormat: ''
          TimeZone: ''

更新されたインポート オプションを使用してデータを読み取り、変数の最初の 10 行を表示します。

T = readtable(filename,opts);
T.RestorationTime(1:10)   
ans = 10×1 datetime
   Feb 7, 2002 16:50:00 * 
   Jan 24, 2026 21:54:14 *
   Feb 17, 2003 08:14:00 *
   Apr 6, 2004 06:10:00 * 
   Mar 18, 2002 23:23:00 *
   Jun 18, 2003 10:54:00 *
   Jun 20, 2004 19:16:00 *
   Jun 7, 2002 00:51:00 * 
   Jul 17, 2003 01:12:00 *
   Sep 27, 2004 16:37:00 *

datetime 変数のオプションの詳細については、setvaropts のリファレンス ページを参照してください。

参考

| | | | | | |

トピック