Automation Anywhere - Change Date and Time Format 使ってみた
みなさん、こんにちは。池田です。
Automation Anywhereを使用していて、日付変換に困ったことはないでしょうか?
Automation Anywhereには日付に関わるシステム変数として、
「$Date$」「$Year$」「$Month$」「$Day$」「$Hour$」「$Minute$」「$Second$」「$Millisecond$」などが用意されています。
これは実行時刻を取得するもで、ここから日付変換をしたくなる場面が多々ありますよね。
例えば、本日から1日後の日付を取りたい。など。
Variable OperationやString Operationを駆使して変換を行うにも限界がありますよね。
本日は、そんな要望に応えられる便利なChange Date and Time Format(DatetTime.mbot)についてご紹介いたします。
これはBot Storeで提供されていて、特に人気のあるものとなっています。
□目次
- 事前準備
- STEP1 BotStoreへアクセス
- STEP2 ダウンロード
- STEP3 License Key取得
- STEP4 インストーラ起動
- STEP5 License Keyの登録
- STEP6 確認
- 使ってみる
- STEP1 BotStoreへアクセス
- STEP2 ロジック選択
- STEP3 AddDays呼び出し
- STEP4 実行
- STEP5 結果確認
- ロジック一覧
- まとめ
事前準備(Change Date and Time Formatのダウンロード)
STEP1 BotStoreへアクセス
https://botstore.automationanywhere.com/bot/change-date-and-time-format/
※Bot Storeでのダウンロードは事前に ユーザ登録 が必要となります。
STEP2 ダウンロード
Get Botボタン押下し、インストーラ(AA_Date Time.msi)がダウンロードします。
STEP3 License Key取得
Download一覧ページに遷移します
https://botstore.automationanywhere.com/my-account/downloads/
Copy to clipboardをクリックし、クリップボードにLicense Keyをコピーします
STEP4 インストーラ起動
インストーラ(AA_Date Time.msi)起動
※msiファイルの実行には管理者権限が必要となります
STEP5 License Keyの登録
STEP3でコピーしたLicense Keyを入力
STEP6 確認
無事にインストールが完了すると、以下のフォルダに配置されます
%UserProfile%\Documents\Automation Anywhere Files\Automation Anywhere\My MetaBots
以上で準備は完了です。次は【使ってみる】で実際に使用してみたいと思います。
使ってみる
STEP1 DateTime.mbot呼び出し
ワークベンチを起動し、MetaBotsタブをクリックし、DateTime.mbotをアクションリストへドラッグ&ドロップ
STEP2 ロジック選択
左側に表示されているものがロジック一覧です。DateTime.mbotには53個ものロジックが含まれています。
(提供されているMetabotによりロジックの数は異なります。)
この中から、求める結果に応じたロジックを選択し、Input Parameter、Output Parameterを設定します。
ここでは、AddDaysをサンプルで利用したいと思います。
STEP3 AddDays呼び出し
AddDaysロジックは「指定した日付のn日後の日付を取得する」という仕様になっています。
以下のように設定してみます。
Input Parameters:
vStr:$Date$ (F2キーでシステム変数のDateを指定)
vOffset:1
Output Parameters:
vStr:$prompt-Assignment$
これを仕様に当てはめると、
指定した日付($Date$)のn日後(vOffset)を取得する($prompt-Assignment$)
となります。
STEP4 実行
実行してみます。
単純に実行しただけですと、$prompt-Assignment$に戻り値が入ったままなので、$prompt-Assignment$をMessageBoxで表示させてみます。
MessageBoxの中身
date:$Date$
addDays(1):$Prompt-Assignment$
STEP5 結果確認
1日後の日付が取得できていることが確認できました。
ロジック一覧
53個のロジックが利用できます。用途と例を以下にまとめてます。
ご参考ください。
# | Logic | 用途 | Input Parameters | Output Parameters | 補足 |
---|---|---|---|---|---|
1 | AddDays |
指定した日付の n日後の日付を取得する |
vStr:表示形式を変更したい値/変数 例:【2019/12/31】 vOffset:追加したい日数 例:【1】 |
vStr:表示形式変更後の値の格納先(変数) 例:【2020/01/01 0:00:00】 |
・減算したい場合はマイナス値を指定 ・時間を設定しない場合に12:00:00 AMが追加される |
2 | AddHours |
指定した日付の n時間後の日付を取得する |
vStr:表示形式を変更したい値/変数 例:【2019/12/31 23:00:00】 vOffset:追加したい時間数 例:【1.5】 |
vStr:表示形式変更後の値の格納先(変数) 例:【2020/01/01 12:30:00】 |
減算したい場合はマイナス値を指定 |
3 | AddMilliseconds |
指定した日付の nミリ秒後の日付を取得する |
vStr:表示形式を変更したい値/変数 例:【2019/12/31 23:00:00】 vOffset:追加したいミリ秒数 例:【1000】 |
vStr:表示形式変更後の値の格納先(変数) 例:【2019/12/31 23:00:01】 |
減算したい場合はマイナス値を指定 |
4 | AddMinutes |
指定した日付の n分後の日付を取得する |
vStr:表示形式を変更したい値/変数 例:【2019/12/31 23:30:00】 vOffset:追加したい分数 例:【30】 |
vStr:表示形式変更後の値の格納先(変数) 例:【2020/01/01 12:00:00】 |
減算したい場合はマイナス値を指定 |
5 | AddMonths |
指定した日付の nヶ月後の日付を取得する |
vStr:表示形式を変更したい値/変数 例:【2019/12/31 23:30:00】 vOffset:追加したい月数 例:【1】 |
vStr:表示形式変更後の値の格納先(変数) 例:【2020/01/31 23:30:00】 |
減算したい場合はマイナス値を指定 |
6 | AddSeconds |
指定した日付の n秒後の日付を取得する |
vStr:表示形式を変更したい値/変数 例:【2019/12/31 23:30:00】 vOffset:追加したい秒数 例:【1】 |
vStr:表示形式変更後の値の格納先(変数) 例:【2019/12/31 23:30:01】 |
減算したい場合はマイナス値を指定 |
7 | AddYears |
指定した日付の n年後の日付を取得する |
vStr:表示形式を変更したい値/変数 例:【2019/12/31 23:30:00】 vOffset:追加したい年数 例:【1】 |
vStr:表示形式変更後の値の格納先(変数) 例:【2020/12/31 23:30:01】 |
減算したい場合はマイナス値を指定 |
8 | compare |
指定した2つの日付を 比較する |
vStr1: 元としての時点を比較したい値/変数 例:【2019/12/31 12:00:00】 vStr2: 元としての時点の値/変数 例:【2019/12/31 12:00:01】 |
vStr: 比較結果の値の格納先(変数) 例:【Later】 OR 【Earlier】 OR 【Equal】 |
Earlier: vStr1はvStr2より早い Later : vStr1はvStr2より遅い Equal : vStr1=vStr2 |
9 | Day |
指定した日付から 【日】を抽出する |
vStr:日を抽出したい日付文字例/変数 例:【2019/10/01】 |
vStr: 抽出した日の格納先(変数) 例:【1】 |
|
10 | DayOfWeek |
指定した日付から 週の曜日を取得する |
vStr:曜日を取得したい日付文字例/変数/ 例:【2020/01/01】 |
vStr: 取得した曜日の格納先(変数) 例:【Wednesday】 |
|
11 | DayOfYear |
指定した日付の 通算日を取得する(年の何日目) |
vStr:年の日数目を取得したい日付文字例/変数 例:【2020/02/01】 |
vStr: 取得した年の日数目の格納先(変数) 例:【32】 |
|
12 | DaysInMonth |
指定した日付の 月の日数を取得する |
vStr:月の日数を取得したい日付文字例/変数 例:【2020/02/01】 |
vStr: 当月の日数の格納先(変数) 例:【29】 |
|
13 | Diff |
指定した2つの日付の 差分を取得する |
vStr1: 元としての日付文字例を比較したい日付文字例/変数 例:【2019/02/01 12:00:00 AM】 vStr2: 元としての日付文字例/変数 例:【2019/03/01 11:59:59 PM】 |
vStr: 日付の差分の格納先(変数) 例:【-28.23.59.59】 |
vStr1はvStr2より遅い場合、マイナス値を戻す |
14 | DiffTotalDays |
指定した2つの日付の 日の差分を取得する |
vStr1: 元としての日付文字例を比較したい日付文字例/変数 例:【2019/02/01】 vStr2: 元としての日付文字例/変数 例:【2019/03/01】 |
vStr: 日付の差分の格納先(変数) 例:【-28】 |
vStr1はvStr2より過去の場合、マイナス値を戻す |
15 | DiffTotalHours |
指定した2つの日付の 時間の差分を取得する |
vStr1: 元としての日付文字例を比較したい日付文字例/変数 例:【2019/01/01 12:00:00 AM】 vStr2: 元としての日付文字例/変数 例:【2019/01/02 11:30:00 PM】 |
vStr: 時間の差分の格納先(変数) 例:【-47.5】 |
vStr1はvStr2より過去の場合、マイナス値を戻す |
16 | DiffTotalMilliseconds |
指定した2つの日付の ミリ秒の差分を取得する |
vStr1: 元としての日付文字例を比較したい日付文字例/変数 例:【2019/01/02 11:30:01.130 PM】 vStr2: 元としての日付文字例/変数 例:【2019/01/02 11:30:00.125 PM】 |
vStr: ミリ秒の差分の格納先(変数) 例:【1005】 |
vStr1はvStr2より過去の場合、マイナス値を戻す |
17 | DiffTotalMinutes |
指定した2つの日付の 分の差分を取得する |
vStr1: 元としての日付文字例を比較したい日付文字例/変数 例:【2019/01/02 11:30:00 PM】 vStr2: 元としての日付文字例/変数 例:【2019/01/02 11:35:00 PM】 |
vStr: 分の差分の格納先(変数) 例:【-5】 |
vStr1はvStr2より過去の場合、マイナス値を戻す |
18 | DiffTotalSeconds |
指定した2つの日付の 秒の差分を取得する |
vStr1: 元としての日付文字例を比較したい日付文字例/変数 例:【2019/01/02 11:30:10 PM】 vStr2: 元としての日付文字例/変数 例:【2019/01/02 11:35:00 PM】 |
vStr: 分の差分の格納先(変数) 例:【-290】 |
vStr1はvStr2より過去の場合、マイナス値を戻す |
19 | ElapsedHours |
タイマーの経過 時間を取得する |
なし |
vResult: StartTimerロジックの実行時点からの経過時間(あるいはStopTimerロジックの実行時点まで)の格納先(変数) 例:【1】 (一時間) |
|
20 | ElapsedMilliseconds |
タイマーの経過 ミリ秒を取得する |
なし |
vResult: StartTimerロジックの実行時点からの経過ミリ秒(あるいはStopTimerロジックの実行時点まで)の格納先(変数) 例:【500】 (500miliseconds) |
|
21 | ElapsedMnutes |
タイマーの経過 分を取得する |
なし |
vResult: StartTimerロジックの実行時点からの経過分(あるいはStopTimerロジックの実行時点までの格納先(変数) 例:【3】 (3分) |
|
22 | ElapsedSeconds |
タイマーの経過 秒を取得する |
なし |
vResult: StartTimerロジックの実行時点からの経過秒(あるいはStopTimerロジックの実行時点まで)の格納先(変数) 例:【50】 (50 seconds) |
|
23 | ElapsedTimeSpan |
タイマーの経過 タイムスパンを取得する |
なし |
vResult: StartTimerロジックの実行時点からの経過の期間(タイムスタンプ)(あるいはStopTimerロジックの実行時点まで)の格納先(変数) 例:【00:00:03.135】 |
|
24 | FirstDayOfMonth |
指定した日付の 当月の初日を取得する |
vStr: 当月の初日を取得したい値/変数 例:【2019/12/22】 |
vStr: 当月の初日の格納先(変数) 例:【2019/12/01/】 |
|
25 | FirstDayOfNextMonth |
指定した日付の 来月の初日を取得する |
vStr: 来月の初日を取得したい値/変数 例:【2019/12/22】 |
vStr: 来月の初日の格納先(変数) 例:【2020/01/01】 |
|
26 | FirstDayOfPreviousMonth |
指定した日付の 先月の初日を取得する |
vStr: 先月の初日を取得したい値/変数 例:【2019/12/22】 |
vStr: 先月の初日の格納先(変数) 例:【2019/11/01】 |
|
27 | FirstDayOfQuarter |
指定した日付の 四半期の初日を取得する |
vStr: 四半期月の初日を取得したい値/変数 例:【2019/12/22】 |
vStr: 四半期の初日の格納先(変数) 例:【2019/10/01】 |
|
28 | FirstDayOfYear |
指定した日付の 当年の初日を取得する |
vStr: 当年の初日を取得したい値/変数 例:【2019/12/22】 |
vStr: 当年の初日の格納先(変数) 例:【2019/01/01】 |
|
29 | FormatStringWithDateTime | 日付の形式を変更する |
vStr: 変更したい値/変数 例:【2019-12-01 11:30:00】 vFormat: 変更後の形式 例:【MM/d/yy hh:mm:ss】 |
vStr: 変更後の値の格納先(変数) 例:【12/1/19 11:30:00】 |
形式の参照: https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings |
30 | GetDateTime | 日付を取得する |
vStr: 日付を取得したい値/変数 例:【2019/07/22 16:07:00】 |
vStr:日付の格納先(変数) 例:【2019/07/22 16:07:00】 |
|
31 | Hour |
指定した日付から 【時間】分を抽出する |
vStr: 時間を抽出したい日付文字例/変数 例:【2019/07/22 16:07:00】 |
vStr:抽出した時間の格納先(変数) 例:【16】 |
|
32 | IsdaylightSavingTime |
指定した日付が 夏時間であるかどうか確認する |
vStr: 夏時間であるかどうか確認したい値/変数 例:【2019/07/22 16:07:00】 |
vStr:確認結果の格納先(変数) 結果は【True】あるいは【False】になる。 例:【False】 |
日本は夏時間を適応しない |
33 | IsLeapYear |
指定した日付が 閏年かどうか確認する |
vStr: 閏年の確認をしたい値/変数 例1:【2019/07/22 16:07:00】 例2:【2020/07/22 16:07:00】 |
vStr:確認結果の格納先(変数) 結果は【True】あるいは【False】になる。 例1:【False】 例2:【True】(2020年がうるう年である) |
|
34 | LastDayOfMonth |
指定した日付の 当月の末日を取得する |
vStr:当月の末日を取得したい値/変数 例:【2019/12/01】 |
vStr:当月の末日の格納先(変数) 例:【2019/12/31】 |
|
35 | LastDayOfNextMonth |
指定した日付の 来月の末日を取得する |
vStr:来月の末日を取得したい値/変数 例:【2019/12/01】 |
vStr:来月の末日の格納先(変数) 例:【2020/01/31】 |
|
36 | LastDayOfPreviousMonth |
指定した日付の 先月の末日を取得する |
vStr:先月の末日を取得したい値/変数 例:【2019/12/01】 |
vStr:先月月の末日の格納先(変数) 例:【2019/11/30】 |
|
37 | LastDayOfQuarter |
指定した日付の 四半期の末日を取得する |
vStr:四半期の末日を取得したい値/変数 例:【2019/12/01】 |
vStr:四半期の末日の格納先(変数) 例:【2019/12/31】 |
|
38 | LastDayOfYear |
指定した日付の 当年の末日を取得する |
vStr:当年の末日を取得したい値/変数 例:【2019/12/01】 |
vStr:当年の末日の格納先(変数) 例:【2019/12/31】 |
|
39 | LocalToUniversalTime |
指定日付を UTC協定世界時間に変換する |
vStr:UTC協定世界時間に変換したい値/変数 例:【2020/12/31 23:59:59】 |
vStr:変換後の値の格納先(変数) 例:【2019/12/31 14:59:59】 |
|
40 | MaxSQLServerDateTime |
SQLサーバの DateTimeタイプの最大の値を取得する |
なし |
vStr:SQLサーバのDateTimeタイプの最大の値の格納先(変数) 例:【9999/12/31 23:59:59】 |
|
41 | MaxValue |
DateTimeタイプの 最大の値を取得する |
なし | vStr:DateTimeタイプの最大の値の格納先(変数) 固定:【9999/12/31 23:59:59】 | |
42 | Millisecond |
指定した日付から 【ミリ秒】を抽出する |
vStr:ミリ秒を抽出したい日付文字例/変数 例:【2020/12/31 23:59:59.123】 |
vStr:抽出した3桁のミリ秒の値の格納先(変数) 例:【123】 |
|
43 | MinSQLServerDateTime |
SQLサーバの DateTimeタイプの最低のバリューを取得する |
なし |
vStr:SQLサーバのDateTimeタイプの最低のバリューの格納先(変数) 例:【9999/12/31 23:59:59】 |
|
44 | Minute |
指定した日付から 【分】分を抽出する |
vStr:分を抽出したい日付文字例/変数 例:【2020/12/31 23:59:59.123】 |
vStr:抽出した分の値の格納先(変数) 例:【59】 |
|
45 | MinValue |
DateTimeタイプの 最低の値を取得する |
なし |
vStr:DateTimeタイプの最低の値の格納先(変数) 固定:【1753/01/01 00:00:00】 |
|
46 | Month |
指定した日付から 【月】を抽出する |
vStr:月を抽出したい日付文字例/変数 例:【2020/12/31 23:59:59.123】 |
vStr:抽出した月の値の格納先(変数) 例:【12】 |
|
47 | Now | 現在のタイムスタンプを取得する | なし |
vStr:現在のタイムスタンプの値の格納先(変数) 例:【2019/07/22/ 17:06:00】 |
|
48 | Second |
指定した日付から 【秒】を抽出する |
vStr:秒を抽出したい日付文字例/変数 例:【2020/12/31 23:59:59.123】 |
vStr:抽出した秒の値の格納先(変数) 例:【59】 |
|
49 | StartTimer | タイマー開始する | なし | なし | Elapsed系Logicと共に利用 |
50 | StopTimer | タイマー終了する | なし | なし | Elapsed系Logicと共に利用 |
51 | TimeOfDay |
指定した日付から 【時間】を抽出する |
vStr:時間を抽出したい日付文字例/変数 例:【2020/12/31 23:59:59.123】 |
vStr:時間の値の格納先(変数) 例:【23:59:59】 |
|
52 | UniversalToLocalTime |
UTC協定世界時間を ローカル時間に変更する |
vStr:ローカルタイムゾーンに変換したい値/変数 例:【2020/12/31 23:59:59】 |
vStr:返還後の値の格納先(変数) 例:【2020/01/01 08:59:59】 (持っているMetabotで実行してみましたが、変換されない) |
|
53 | Year |
指定した日付から 【年】を抽出する |
vStr:年を抽出したい日付文字例/変数 例:【2020/12/31 23:59:59.123】 |
vStr:抽出した年の値の格納先(変数) 例:【2020】 |
まとめ
いかがだったでしょうか。これで日付処理は楽になりますね。
Bot Storeを利用することで手間な実装も楽に進めることができるので、
一から実装する前に先ずはBot Storeに実現したいことを賄う機能があるかどうか
探してみるのがいいかもしれません。
Can Be Great!
他のおすすめ記事はこちら
著者紹介
先端技術推進統括部
RPAビジネス推進部
池田 康一
写真アップデートしました
Can Be Great!