시간대 정보가없는 datetime
이 있습니다. 이제 시간대 정보를 얻고 있으며 기존 datetime 인스턴스에 시간대를 추가하고 싶습니다. 어떻게해야합니까?
d = datetime.datetime.now()
tz = pytz.timezone('Asia/Taipei')
시간대 정보 tz
를 datetime a
에 추가하는 방법
해결 방법
첫 번째는 pytz 라이브러리에서 제공하는 localize () 메서드를 사용하는 것입니다. 이것은 순진한 날짜 시간 (시간대 정보가없는 날짜 시간)을 지역화하는 데 사용됩니다.
>>> loc_dt = eastern.localize(datetime(2002, 10, 27, 6, 0, 0)) >>> print(loc_dt.strftime(fmt)) 2002-10-27 06:00:00 EST-0500
tz.localize ()
를 사용하지 않고 datetime.replace ()
를 사용한다면 역사적 < / em> 오프셋이 대신 사용됩니다. tz.localize ()
는 주어진 날짜에 유효한 올바른 오프셋을 선택합니다. 예를 들어, 미국 동부 표준 시간대 DST 시작 및 종료 날짜는 시간이 지남에 따라 변경되었습니다.
여름에서 겨울로 또는 그 반대로 전환 기간에 걸쳐 모호한 datetime 값을 지역화하려고하면 결과 datetime 객체에 .dst () 가 있어야하는지 확인하기 위해 시간대를 참조합니다. code> True 또는 False를 반환합니다.
.localize ()
에 대한 is_dst
키워드 인수를 사용하여 시간대의 기본값을 재정의 할 수 있습니다.
dt = tz.localize(naive, is_dst=True)
또는 is_dst = None
을 설정하여 선택 사항을 완전히 끌 수도 있습니다. 이 경우 또는 드물게 시간대에 대한 기본 설정이 없고 모호한 datetime 값으로 인해 AmbiguousTimeError
예외가 발생합니다. is_dst
플래그는 모호한 datetime 값에 대해서만 참조되며 그렇지 않으면 무시됩니다.
반대로 돌아가려면 시간대 인식 객체를 순진한 객체로 되돌리고 .replace (tzinfo = None)
를 사용합니다.
naivedt = awaredt.replace(tzinfo=None)
참조 페이지 https://stackoverflow.com/questions/13994594
'파이썬' 카테고리의 다른 글
파이썬 전역으로 설치된 패키지를 virtualenv 폴더로 가져 오는 방법 (0) | 2021.01.31 |
---|---|
파이썬 Python : sys.exit 또는 SystemExit 차이점 및 제안 사용 (0) | 2021.01.31 |
파이썬 NumPy loadtxt () 및 genfromtxt에서 'dtype'에 사용할 수있는 데이터 유형은 무엇입니까? (0) | 2021.01.31 |
파이썬 items () 대신 iteritems ()를 언제 사용해야합니까? (0) | 2021.01.31 |
파이썬 Python에서 임의의 16 진수 색상 생성 (0) | 2021.01.31 |
댓글