AWS Lambdaで時刻を扱う
Lambdaにてdatetime.now()を用いて、現在時刻との時間比較を行うApplicationを作っていたところ、どうも時間比較が想定と違う動きをしているぞと悩んでました。ふとLambdaのTimeZoneが違うのでは!と頭をよぎったので調べてみました。
LambdaのTimeZoneは、、
LambdaのTimeZoneはどうやらUTCのようです。比較対象の時刻はJSTだったので、それはうまくいかないわけです。
LambdaでのTimeZone確認
LambdaのTimeZone確認に使用したコードです。
from datetime import datetime import os def lambda_handler(event, context): return { 'time_zone': os.environ["TZ"], 'now':datetime.now().strftime("%Y%m%d%H%M") }
出力
{ "time_zone": ":UTC", "now": "201902181443" }
TimeZoneを変更する
環境変数に TZ : Asia/Tokyoと追加しました。 その後先ほどのコードを動かしてみたところ、、、
{ "time_zone": "Asia/Tokyo", "now": "201902182343" }
時刻表示が東京基準になりました。めでたし!