レッスン13日時情報の取得

日付や時刻から必要な情報だけを抜き出して入力するには

[DateTime]をさらに活用してみましょう。日時を指定した形式で表示したり、日時から特定の情報だけを取得したりすることもできます。

日時から必要な情報を得る

業務を自動化するときは、単純に日時を得るだけでなく、それを必要な形式に変更したり、必要な情報だけを取り出す必要があります。ここでは、日時のデータの基本的な扱い方を紹介します。

日付を取得する

「DateTime.Now.ToString("yyyy/MM/dd")」のようにすると、日時を指定した形式の文字列として取り出せます。

日付や時刻から必要な情報を取得するには(日時情報の取得) - できるUiPath

時刻を取得する

日時の情報から時刻だけを取り出すこともできます。「"hh:mm:ss"]と表示したい形式を指定しましょう。

日付や時刻から必要な情報を取得するには(日時情報の取得) - できるUiPath

日時を計算する

[AddDays]で日付を足したり、ちょっとした工夫で前月末を取得したりと、日付の計算もできます。

日付や時刻から必要な情報を取得するには(日時情報の取得) - できるUiPath

HINTカレンダーの操作などにも活用できる

このレッスンで紹介する方法は、見積もり作成ソフトで日付を選択したり、カレンダーアプリで日付を選択したりするなど、日付を扱うワークフローを作成するときに便利です。

HINTこのレッスンで使う変数

このレッスンでは、次の変数を使います。ワークフロー内で登場する変数の用途を確認しておきましょう。

dtToday

型:GenericValue
用途:取得した日時を格納する

日付だけを取得する

日付と時刻の両方が含まれた[DateTime.Now]から、日付だけを指定して取り出しましょう。形式を指定することで、欲しい情報だけを表示できます。

1ワークフローを開く

日付や時刻から必要な情報を取得するには(日時情報の取得) - できるUiPath

2処理を書き換える

日付や時刻から必要な情報を取得するには(日時情報の取得) - できるUiPath

3処理を実行する

日付や時刻から必要な情報を取得するには(日時情報の取得) - できるUiPath

HINT形式にこだわらないなら

「2018/10/21」のように「年/月/日」で並ぶ形式で表示したいときは、手順2のように「.ToString("yyyy/MM/dd")」と形式を指定する必要があります。もしも、海外で一般的な「月/日/年(10/21/2018)」のような形式で表示したいときは、単に「.ToShortDateString」と指定して日付を取り出しましょう。

なお、「.ToLongDateString」と指定すると、「Sunday, 21October 2018」のような長い形式で表示できます。

HINT月を表す「MM」は大文字で指定しよう

日時を表すフォーマットでは、「m」の扱いに注意が必要です。ここで指定した月を表す場合は、必ず大文字の「M」を指定します。小文字の「m」は時刻の分を表すためのものなので、間違えないように注意しましょう。

HINTすべて指定する必要はない

ここでは、「yyyy/MM/dd」と年、月、日をすべて指定しましたが、「ToString("dd")」と指定することで、日付だけを取り出せます。例えば、Webアプリで今日の日付をクリックしたいときなどは、この方法で日付を取得して、クリック先を指定できます。

時刻を取得する

続いて、時刻だけを取り出します。日付のときと同様に「.ToString("hh:mm:ss")と形式を指定します。「""」内の違いに注意して実行してみましょう。

1ワークフローを開く

日付や時刻から必要な情報を取得するには(日時情報の取得) - できるUiPath

2処理を書き換える

日付や時刻から必要な情報を取得するには(日時情報の取得) - できるUiPath

3処理を実行する

日付や時刻から必要な情報を取得するには(日時情報の取得) - できるUiPath

HINT形式を指定せずに時刻を取得するには

日付のときは、形式に注意する必要がありましたが、時刻の場合は地域による表記の違いがほとんどないため、よりシンプルな方法で時刻を取得できます。「.ToShortTimeString(時と分のみ)」や「.ToLongTimeString(秒まで表示)」と指定して結果を確認しましょう。

HINT分は小文字の「mm」と指定する

形式を指定して時刻を取得する際は、必ず「m」を小文字で表記します。大文字にすると、前で解説した月と判断されるため、「時:月:秒」と表示されます。

HINT日時をファイル名に使いたいときは

ログファイルを出力するワークフローを作成するときなどは、取得した日時をファイル名に使用できます。ただし、日時に含まれる「/」や「:」はファイル名として使えないため、「"yyyyMMdd"」や「"hhmmss"」のように「/」や「:」を抜いた形式で指定します。

×日後の日付を取得する

作成するワークフローによっては、今日から指定した日数後の日付を取得したいことがあります。そこで、日付を計算する方法を見てみましょう。

1ワークフローを開く

日付や時刻から必要な情報を取得するには(日時情報の取得) - できるUiPath

2処理を書き換える

日付や時刻から必要な情報を取得するには(日時情報の取得) - できるUiPath

3処理を実行する

日付や時刻から必要な情報を取得するには(日時情報の取得) - できるUiPath

HINT年や月、時刻の計算もできる

ここでは、日付を計算するための「AddDays」を使いましたが、このほか、次の方法で日付以外を計算できます。

・AddMonths:月を計算する
・AddYears:年を計算する
・AddHours:時を計算する
・AddMinutes:分を計算する
・AddSeconds:秒を計算する

HINT引き算をするには

「AddDays」は、「Add」という言葉が使われていますが、足し算だけでなく引き算もできます。「AddDays(-1)」と負の数を指定すれば、指定した日数前の日付を表示できます。

前月の末尾を取得する

請求処理などでは、前月の末尾を日付として扱うことがよくあります。このような日付も、発想を少し工夫することで指定が可能です。

1ワークフローを開く

日付や時刻から必要な情報を取得するには(日時情報の取得) - できるUiPath

2処理を書き換える

日付や時刻から必要な情報を取得するには(日時情報の取得) - できるUiPath

3処理を実行する

日付や時刻から必要な情報を取得するには(日時情報の取得) - できるUiPath

HINTどうやって前月末を指定しているの?

「前月の末日」は、発想を変えて考えると、「今月の1日の1日前」といえます。これを表したのが手順2で記入した処理です。長いので2つに分解して見てみましょう。

まず、「New DateTime(DateTime.Now.Year, DateTime.Now.Month, 1)」は、最後の「1」から分かるように現在の年、月の1日(最初の日)を指定しています。この構文に対して、「AddDays(-1)」を指定しているので、1日前、つまり前月の末日を指定できます。最後に、これで取得できた日時の情報をToString("yyyy/MM/dd")で、指定した形式の文字列にしています。

HINT日時の形式をマスターしよう

レッスンでは「yyyy/MM/dd」や「hh:mm:ss」といった基本的な形式を紹介しましたが、これ以外にも日時を表す文字の組み合わせがあります。年や月を単独で指定できるのはもちろん、「ddd」や「dddd」で曜日を表示したり、大文字の「HH」で時刻を24時間形式で表示できます。ワークフローの中で、どのような情報が必要かによって、これらの形式を使い分けましょう。

主な日時の表示形式

日付や時刻から必要な情報を取得するには(日時情報の取得) - できるUiPath

HINT日付の記号は個別に変更できる

一般的には、「2018/10/21」と「/」で日付を区切ったり、「11:56:30」と「:」で時刻を区切るのが一般的ですが、これらの文字は任意のものに置き換えられます。例えば、「yyyy年MM月dd日(ddd)」と指定すると、「2018年10月21日(Sun)」と表示できます。

なお、ここでは、構文で使われるかっこと曜日を囲むかっこを区別できるようにするために、曜日のかっこを全角にしましたが、きちんと「""」で囲まれていれば、曜日の表示に半角のかっこを使っても問題ありません。

日付や時刻から必要な情報を取得するには(日時情報の取得) - できるUiPath

日付や時刻から必要な情報を取得するには(日時情報の取得) - できるUiPath

Point日時のデータを活用しよう

日時は、普段の業務を自動化する際に欠かせない情報の1つです。ログとして情報を残したり、請求書の日付として使ったり、データの取得日を指定したり、タイムスタンプとして使ったりと、いろいろな活用ができます。単に表示するだけでなく、必要な情報をどのように取り出すか、どうやって計算するかを覚えておくと、いろいろなワークフローで活用できるでしょう。

提供:UiPath

関連まとめ記事