AWS Lambda에서 현재시각을 구할때 datetime
변수에 타임존을 적용시키고 싶었는데 pytz
라이브러리를 사용하기위해서는 별도로 layer를 추가해줘야했다. 귀찮아서 별도 라이브러리 추가없이 타임존 객체를 가져올 수 있는 방법을 찾아보다가 zoneinfo
라이브러리를 알게 되었다. 덕분에 별도 라이브러리 설치없이 datetime
변수에 타임존을 적용시킬 수 있었다.
Added in version 3.9.
The
zoneinfo
module provides a concrete time zone implementation to support the IANA time zone database as originally specified in PEP 615. By default,zoneinfo
uses the system’s time zone data if available; if no system time zone data is available, the library will fall back to using the first-party tzdata package available on PyPI.See also
Module:
datetime
Provides thetime
anddatetime
types with which theZoneInfo
class is designed to be used.
Package tzdataFirst-party package maintained by the CPython core developers to supply time zone data via PyPI.
쉽게 말하자면 python 3.9버전부터 추가된 datetime에 타임존을 적용시킬 수 있는 클래스이다.
from datetime import datetime
import pytz
def lambda_handler(event, context):
now = datetime.now(pytz.timezone("Asia/Seoul"))
...
[ERROR] Runtime.ImportModuleError: Unable to import module 'lambda_function': No module named 'pytz'
Traceback (most recent call last):
from datetime import datetime
from zoneinfo import ZoneInfo
def lambda_handler(event, context):
now = datetime.now(ZoneInfo("Asia/Seoul"))
...