나는이 정확한 issue을 발견했으며, 내 경우에는 해결책을 얻는 방법을 알 수 없다.Python에서 UTC로 변환 한 후 tzinfo를 완전히 제거하는 방법은 무엇입니까?
귀도이 내가 시도 무엇
The solution is to remove the tzinfo completely from the time after converting to UTC.
말한다 :
date_time = parser.parse(i.pubDate.text)
news.publication_date = date_time.replace(tzinfo=None).date()
그리고 같은 오류 얻을 :
NotImplementedError: DatetimeProperty publication_date_time can only support UTC. Please derive a new Property to support alternative timezones.
그래서 내가 날짜를 변환 할 것을 먼저 UTC로. 그리고 여기 내 연구가 실패했습니다.
나는이 solution 건너 온 :제안 해결책은 이것이다 :
def date_time_to_utc(date_time):
tz = pytz.timezone('???')
return tz.normalize(tz.localize(date_time)).astimezone(pytz.utc)
하지만 시간대가 없습니다. html 소스에서 날짜를 고칩니다. 따라서 시간대는 실제로 세계 어디에서나있을 수 있습니다. 날짜 시간을 UTC로 변환하는 쉽고 안정적인 방법이 있습니까? 이것을 달성하기 위해 dateutil
과 pytz
을 모두 사용할 수 있습니다. 많은 감사.
업데이트 정말 긴 하루였습니다. 스택 추적을 잘못 읽었습니다. 그러나 질문은 유효합니다.
date_time = (datetime}2015-01-13 18:13:26+00:00
news.publication_date_time = date_time
이로 인해 충돌이 발생했습니다. 그리고 이렇게하면 유닛 테스트를 통과합니다 :
GMT 0 datetime을 UTC datetime으로 변환하는 올바른 방법입니까? 또는 실제로 UTC에 대한 모든 시간대?
게시 한 코드 ("이것은 내가 시도한 것입니다 :")는 '순진한'날짜 시간을 날짜로 바꾸는 것을 보여 주지만 오류는 DatetimeProperty에서 발생합니다. 트레이스가 당신이 보여준 코드로 확실히 인도합니까? 그것은 정확 해 보입니다 ... – Greg
@Houman :'.date()'앞에'.replace (tzinfo = None)'이 필요 없습니다. 항상 순진한'date' 객체를 반환합니다. – jfs