AWS Lambda を開発する際のユニットテストでは、TZ=UTC にしておこう
時刻判定周りでのローカルタイムゾーンの違いは、うっかりバグの元になりやすいものですが、AWS Lambda の場合、以下のように環境変数 TZ が予約済み環境変数として変更不可能となっているようです。
つまり、AWS Lambda の実行環境ではローカルタイムゾーンが UTC 固定になっているということですね。わかり易くはあるのですが、開発PC 上でや CI でユニットテストを走らせるときにローカルタイムゾーンが現地 (JSTとか) に設定されていて、テスト通ったけど本番環境でバグる、ということもありそうです。
テストを実行するときは 環境変数 TZ に UTC
を設定しておくようにするのがよさそうですね。Go 言語なら Makefile に書いてしまうのもいいかもしれません。