Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What are the problem?

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

えっ、どういう事?

えー、多分表題を見てもピンと来ない方がほとんどなので一から説明します。
まず、下の氏名、日付を指定したcsvがあります。
clipboard-202011270937-avhbr.png

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

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

clipboard-202011270939-h8o2u.png

あれ、日付が違う・・・・
そうなんです。実は日時のフィールドタイプってUTC(協定世界時)で取得しているんです・・・
つまり、日本時間に計算しなおすとUTCから9時間後になります。

じゃあ、あらかじめフィールドタイプをテキストで取れば良いんじゃない?

そーですよね。そー思うじゃないですか。
でも・・・
clipboard-202011270957-tzajp.png

テキストタイプに指定してもダメなんですよ・・・・

UTC To Local アクションを使う

ではどうするのか
そんな時は、 Utility - Date and Time Manipulation オブジェクトの UTC To Local アクションを
使います!

中身はこんな感じ

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

これを使ってcsvから取得したコレクションを日本時間に直そう

では、早速日本時間に直す処理をしましょう。
UTC To Local アクションをプロセスにセットして
clipboard-202011271034-mqtmw.png

UTCはコレクション内の日付フィールドを参照するように設定
Time Zone IDは日本時間に変換するため、Tokyo Standard Timeに設定
返す値もコレクション内の日付フィールドを指定
clipboard-202011271045-ptzzs.png

今回はコレクションアイテムなので繰り返しステージを置く

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

これで準備完了

clipboard-202011271048-ex3wx.png
これで一通り実装がそろったので早速、実行してみましょう。

実行すると?

clipboard-202011271057-o7mmq.png
UTCから9時間後の日時になっていますね!

まとめ

今回は、既存のアクションをプロセスの繰り返しステージを囲んでの
実装となりましたが今後、手が空いた時にコレクション内の日時データを
まとめて指定のタイムゾーンに変換出来るアクションを作成したいと思います!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
1
Help us understand the problem. What are the problem?