반응형
pytz datetime 객체에서 시간대를 제거하는 간단한 방법이 있습니까?
예 : 이 예에서 dt_tz
에서 dt
를 재구성합니다.
>>> import datetime
>>> import pytz
>>> dt = datetime.datetime.now()
>>> dt
datetime.datetime(2012, 6, 8, 9, 27, 32, 601000)
>>> dt_tz = pytz.utc.localize(dt)
>>> dt_tz
datetime.datetime(2012, 6, 8, 9, 27, 32, 601000, tzinfo=<UTC>)
해결 방법
datetime 객체에서 시간대 (tzinfo)를 제거하려면 :
# dt_tz is a datetime.datetime object
dt = dt_tz.replace(tzinfo=None)
# <Arrow [2014-10-09T10:56:09.347444-07:00]>
arrowObj = arrow.get('2014-10-09T10:56:09.347444-07:00')
# datetime.datetime(2014, 10, 9, 10, 56, 9, 347444, tzinfo=tzoffset(None, -25200))
tmpDatetime = arrowObj.datetime
# datetime.datetime(2014, 10, 9, 10, 56, 9, 347444)
tmpDatetime = tmpDatetime.replace(tzinfo=None)
왜 이렇게 하시겠습니까? 한 가지 예는 mysql이 DATETIME 유형의 시간대를 지원하지 않는다는 것입니다. 따라서 sqlalchemy와 같은 ORM을 사용하면 데이터베이스에 삽입 할 datetime.datetime
개체를 제공 할 때 단순히 시간대가 제거됩니다. 해결책은 datetime.datetime
객체를 UTC로 변환하는 것입니다 (시간대를 지정할 수 없기 때문에 데이터베이스의 모든 것이 UTC가 됨). 또는 직접 제거하십시오. 또한 하나는 시간대를 인식하고 다른 하나는 표준 시간대를 인식하는 datetime.datetime
객체를 비교할 수 없습니다 .
##############################################################################
# MySQL example! where MySQL doesn't support timezones with its DATETIME type!
##############################################################################
arrowObj = arrow.get('2014-10-09T10:56:09.347444-07:00')
arrowDt = arrowObj.to("utc").datetime
# inserts datetime.datetime(2014, 10, 9, 17, 56, 9, 347444, tzinfo=tzutc())
insertIntoMysqlDatabase(arrowDt)
# returns datetime.datetime(2014, 10, 9, 17, 56, 9, 347444)
dbDatetimeNoTz = getFromMysqlDatabase()
# cannot compare timzeone aware and timezone naive
dbDatetimeNoTz == arrowDt # False, or TypeError on python versions before 3.3
# compare datetimes that are both aware or both naive work however
dbDatetimeNoTz == arrowDt.replace(tzinfo=None) # True
참조 페이지 https://stackoverflow.com/questions/10944047
반응형
'파이썬' 카테고리의 다른 글
파이썬 R 또는 Python을 사용하여 좌표계에 벡터 플로팅 (0) | 2021.02.15 |
---|---|
파이썬 Assigning to columns in NumPy? (0) | 2021.02.15 |
파이썬 How do I check if a string only contains alphanumeric characters and dashes? (0) | 2021.02.14 |
파이썬 .so 파일에서 파이썬 모듈을 가져 오는 방법은 무엇입니까? (0) | 2021.02.14 |
파이썬 csv 데이터 파일을 scikit-learn으로 가져 오는 방법은 무엇입니까? (0) | 2021.02.14 |
댓글