다음 형식의 날짜에서 타임 스탬프를 얻고 싶습니다.
Mon, 23 Nov 2020 19:00:00 GMT
Mon, 23 Nov 2020 20:00:00 +0100
다음 문을 사용하여 날짜를 datetime
개체 로 변환 합니다.
dateobj = datetime.datetime.strptime(date, '%a, %d %b %Y %H:%M:%S %Z')
dateobj = datetime.datetime.strptime(date, '%a, %d %b %Y %H:%M:%S %z')
그러나 .timestamp()
방법을 사용 하면 epoch와 다른 초가 인쇄됩니다. %Z
지시문이 datetime
객체에 시간대 정보를 추가 하지 않는 이유는 무엇 입니까? 시간대를 어떻게 고려하여 타임 스탬프가 동일합니까?
Python에서 일치하지 않는 datetime 구문 분석 시간대에 유의하십시오 . 귀하의 문제는 %Z
그것하게, strptime
동의 - 특정 문자열 (GMT, UTC와 time.tzname의 값 문서를 하지만, 실제로 그것을 무엇을하지 않습니다). 반환 된 datetime 객체는 순진합니다. 그래서 파이썬은 timestamp()
메서드 를 호출하면 현지 시간이라고 가정 합니다.
대신 dateutil의 파서를 사용할 수 있습니다.
from dateutil.parser import parse
for s in ("Mon, 23 Nov 2020 19:00:00 GMT", "Mon, 23 Nov 2020 20:00:00 +0100"):
dt = parse(s)
print(repr(dt), dt.timestamp())
# datetime.datetime(2020, 11, 23, 19, 0, tzinfo=tzutc()) 1606158000.0
# datetime.datetime(2020, 11, 23, 20, 0, tzinfo=tzoffset(None, 3600)) 1606158000.0
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다