0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Blue Prism】コレクションに格納した日時フィールドが日本時間になっていない件

0
Posted at

え、どういうこと?

タイトルだけだと分かりづらいと思うので、順を追って説明します。
まず、以下のような「氏名」と「日時」を含むCSVファイルを用意します。

1.png

このCSVをUtility - File ManagementオブジェクトのGet CSV Text As Collectionアクションを使って、csvファイルの中身をコレクションに格納します。

2.png

コレクションに格納すると...

14.png

あれ、日時が違う...
実は日時フィールドはUTC(協定世界時)で取得される仕様になっています。
そのため、日本時間に計算しなおすとUTCから9時間後になります。

テキスト型で取得すれば解決?

「じゃあ最初からテキスト型で取ればいいのでは?」と思いますよね。

しかし実際は...

13.png

テキストで取得しても、同様に -9時間の時差 が発生してしまいます。

14.png

解決方法 : UTC To Local アクションを使う

この問題は、
Utility - Date and Time Manipulation オブジェクトの UTC To Local アクションで解決できます。
※オブジェクトは以下のサイトよりダウンロードし、Blue Prismにインポートします。
 ダウンロードにはBlue Prism Portalへのログインが必須です。
 Utility - Date and Time Manipulation

中身はこんな感じ

データアイテムを指定して、変換するタイムゾーンIDを入力します
そうすると指定のタイムゾーンに変換したデータアイテムを戻り値で返す仕組みになっています。

4.png
5.png

コレクションの日時を日本時間に変換する

では、早速日本時間に直す処理をしましょう。
UTC To Local アクションをプロセスに配置

6.png

UTCはコレクション内の日時フィールドを参照するように設定
Time Zone IDは日本時間に変換するため、Tokyo Standard Timeに設定
出力先も同じコレクション内の日時フィールドを指定

7.png
8.png

繰り返し処理が必要

今回はcsvファイルから取得したコレクションアイテム内の日時データアイテムを使うので、
UTC To Local アクションを繰り返しステージで囲みます。

9.png
10.png

これで準備完了

11.png

実行すると...

12.png

UTCから9時間後の日本時間に変換されています!

まとめ

  • CSVから取得した日時はUTCで扱われる
  • テキスト型でも時差問題は解決しない
  • UTC To Localを使えば簡単に変換可能
  • コレクションの場合は 繰り返し処理が必須

今後は、コレクション内の日時を一括で変換できるようなカスタムアクションの作成も検討していきたいと思います!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?