Main Content

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

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

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

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

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

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

インポート ツール

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

関数 readtable

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

filename = 'outages.csv';
T = readtable(filename);
T.OutageTime(1:10)
ans = 10x1 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 = 10x1 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','MMMM d, yyyy HH:mm:ss Z',...
                       'FillValue','now');
getvaropts(opts,'RestorationTime')
ans = 
  DatetimeVariableImportOptions with properties:

   Variable Properties:
              Name: 'RestorationTime'
              Type: 'datetime'
         FillValue: July 20, 2024 15:28:00 *
    TreatAsMissing: {}
         QuoteRule: 'remove'
          Prefixes: {}
          Suffixes: {}
    EmptyFieldRule: 'missing'

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

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

T = readtable(filename,opts);
T.RestorationTime(1:10)   
ans = 10x1 datetime
   February 7, 2002 16:50:00 *  
   July 20, 2024 15:28:00 *     
   February 17, 2003 08:14:00 * 
   April 6, 2004 06:10:00 *     
   March 18, 2002 23:23:00 *    
   June 18, 2003 10:54:00 *     
   June 20, 2004 19:16:00 *     
   June 7, 2002 00:51:00 *      
   July 17, 2003 01:12:00 *     
   September 27, 2004 16:37:00 *

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

参考

| | | | | | |

関連するトピック