え、どういうこと?
タイトルだけだと分かりづらいと思うので、順を追って説明します。
まず、以下のような「氏名」と「日時」を含むCSVファイルを用意します。
このCSVをUtility - File ManagementオブジェクトのGet CSV Text As Collectionアクションを使って、csvファイルの中身をコレクションに格納します。
コレクションに格納すると...
あれ、日時が違う...
実は日時フィールドはUTC(協定世界時)で取得される仕様になっています。
そのため、日本時間に計算しなおすとUTCから9時間後になります。
テキスト型で取得すれば解決?
「じゃあ最初からテキスト型で取ればいいのでは?」と思いますよね。
しかし実際は...
テキストで取得しても、同様に -9時間の時差 が発生してしまいます。
解決方法 : UTC To Local アクションを使う
この問題は、
Utility - Date and Time Manipulation オブジェクトの UTC To Local アクションで解決できます。
※オブジェクトは以下のサイトよりダウンロードし、Blue Prismにインポートします。
ダウンロードにはBlue Prism Portalへのログインが必須です。
Utility - Date and Time Manipulation
中身はこんな感じ
データアイテムを指定して、変換するタイムゾーンIDを入力します
そうすると指定のタイムゾーンに変換したデータアイテムを戻り値で返す仕組みになっています。
コレクションの日時を日本時間に変換する
では、早速日本時間に直す処理をしましょう。
UTC To Local アクションをプロセスに配置
UTCはコレクション内の日時フィールドを参照するように設定
Time Zone IDは日本時間に変換するため、Tokyo Standard Timeに設定
出力先も同じコレクション内の日時フィールドを指定
繰り返し処理が必要
今回はcsvファイルから取得したコレクションアイテム内の日時データアイテムを使うので、
UTC To Local アクションを繰り返しステージで囲みます。
これで準備完了
実行すると...
UTCから9時間後の日本時間に変換されています!
まとめ
- CSVから取得した日時はUTCで扱われる
- テキスト型でも時差問題は解決しない
- UTC To Localを使えば簡単に変換可能
- コレクションの場合は 繰り返し処理が必須
今後は、コレクション内の日時を一括で変換できるようなカスタムアクションの作成も検討していきたいと思います!













