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?

データ連携に奮闘中の皆様、いかがお過ごしでしょうか。

前回(以下の記事参照)、SlackAppの「Request URL」からでは、認証の必要なAPIへ飛べないと嘆いていた、「へっぽこセールスエンジニア」です。
社内でも「Lambdaでは?」ということで、AWSを挟んでみました。

↓作りとしては、以下のような形です。

★スクリプトのところにご注目下さい。

いやだー!拡張性が出るように、Lambdaでは細かい処理をしないんだー!
HULFT Squareで処理するんだー!運用面でもその方が管理できるもん!と
私めが(心の中で)叫んだばかりにそう、修正していないデータが飛んできます。

ユーザ:Slackの所で、ユーザがレスポンスをすると、レスポンスの日時が取れるのですが、以下形式でデータが届きます。
UNIXタイムスタンプ
GMT(グリニッジ天文台の標準時刻)

日本時間は+9時間の修正です。

つまり、日時データを使うには、以下をする必要があります。
①UNIXタイムスタンプを「2026/8/20 13:21」のような可読性のある形式に修正する。
②タイムゾーンをGMT→JST(日本時間)に修正する。

結局サポートから、「標準時刻をタイムゾーンに足せばよい」という
身も蓋もない回答だったため(当たり前)、試してみました。

標準時刻とはなんぞ?は、以下先人の知恵をご確認ください。

簡単に言うと、UNIXタイムは「1970/01/01 00:00:00 UTC」からの経過秒数であるため、JSTでは9時間後の「1970/01/01 09:00:00」に以下のようなスタンプを足せば良いのではないか?です。

実際送られてくる日時形式
"action_ts": "1787199888.633300"

形式がマイクロ秒なのですが、そこまでは不要なので、以下実装しました。
①基本日時をセット
②UNIXタイムスタンプの小数点以下切り捨て
③①に②を足し込む

簡単ですね!

HULFT Squareの実装(UNIXタイムスタンプ→JST)

①基本日時をセット

 ①-1.mapperを開き、「日時」「日時定数」をドラッグ。
image.png
 ①-2.「日時定数」を記載し、「完了」を押します。
コメント:任意 ※ここでは「基本日時JST」
日付時間:1970/01/01 09:00:00 
image.png

②UNIXタイムスタンプの小数点以下切り捨て

 ②-1.mapperの中で、「数値」「切り捨て」をドラッグ。
image.png
 ②-2.「切り捨て」を記載し、「完了」を押します。
 ・コメント:任意 ※ここでは「小数点切り捨て」
 ・指定桁数:0
image.png
 ②-3.「action_ts」→「小数点切り捨て」へ線を引きます。
image.png

③①基本日時に②UNIXタイムスタンプを足し込む

 ③-1.mapperの中で、「日付」「秒を増減」をドラッグ。
image.png
 ③-2.「秒を増減」を記載し、「完了」を押します。
 ・コメント:任意 ※ここでは「秒を増加」
image.png
  ③-3.「基本日時JST」→「秒を増加」、「小数点切り捨て」→「秒を増加」に線を引きます。
image.png
 ③-4.「秒を増加」→出力先のカラムに線を引きます。
image.png

これで完了です。変換サイトを使用して、実際に正しく変換して出力できているか確認します。

1787199888.633300→ 2026年08月20日13:24:48.6333

秒未満は切り捨てているで、ほんの少し差がありますが、「正解」です:v:
image.png

工夫すれば色々できますね!
またお会いしましょう:grinning:

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?