\

PythonとAWS Lambdaを使用して日時を扱う方法について説明します。特に、Lambdaの実行環境がUTCであるため、日本時間を扱いたい場合の対処法について詳しく見ていきましょう。

datetimeモジュールの基本

Pythonのdatetimeモジュールは日付と時刻を扱うためのものです。以下のようにdatetimeオブジェクトを作成し、現在の日時を取得することができます。

from datetime import datetime
now = datetime.now()
print("Date/Time: ", now)

Lambdaでの日時取得

AWS Lambdaでは、実行環境がUTCなので、日本時間を取得したい場合は注意が必要です。具体的には、timezoneオブジェクト(tzinfoのサブクラス)を使用して日本時間を設定します。

しかし、datetime.today()メソッドは引数を取らないため、以下のようなコードはエラーになります。

from datetime import datetime, timezone, timedelta
TZ_JST = timezone(timedelta(hours=+9))
processingDate = datetime.today(TZ_JST)  # TypeError: datetime.today() takes no arguments (1 given)

そこで、timedeltaオブジェクトを使用して、取得した日時に9時間を加えることで日本時間を取得することができます。

from datetime import datetime, timedelta
processingDate = datetime.today() + timedelta(hours=9)
print(processingDate)

このように、PythonとLambdaを使用して日時を扱う際は、実行環境のタイムゾーンとdatetimeモジュールの使い方を理解することが重要です。

参考

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です