Python 에서 Epoch 를 만 드 는 방법
0 Python 에서 Epoch 생 성
from datetime import datetime
# python3
datetime.now().timestamp()
# python2
import time
time.mktime(datetime.now().timetuple()) # python2 3,
1 오류 코드
from datetime import datetime
import pytz
aware_date = datetime.utcnow().replace(tzinfo=pytz.utc)
time.mktime(aware_date.timetuple()) # bug here
2 원인Python 의 datetime 대상 은 시간 대 정보 와 시간 대 정보 가 없 는 두 가지 대상 으로 나 뉘 는데 그것 이 바로 naive 와 aware 대상 이다.naive 를 처리 할 때 모든 것 이 시스템 시간 대 이 며 문제 가 없습니다.
Python 3 에서 timestamp 를 실행 할 때 naive 대상 에 대해 기본 시간 대 에 따라 처리(time.mktime 호출)하고 aware 대상 은 시간 대 계산 과 UTC 기준 시간의 간격 초 수 를 가 져 옵 니 다.즉,시간 대 정 보 를 고려 하 는 것 입 니 다.
파 이 썬 2 와 3 의 timetuple 방법 은 돌아 온 결과 시간 대 정 보 를 포함 하지 않 았 고 시간 대 전환 도 하지 않 았 습 니 다.즉,timetuple 을 호출 하 는 것 은 aware 날짜 대상 에 게 시간 대 정보 가 버 려 지기 때문에 time.mktime 를 호출 하면 잘못된 결 과 를 얻 을 수 있 습 니 다.
3 해결 방법
1.방법 1:다른 시간 대의 aware 날 짜 를 현재 시스템 의 기본 시간 대의 aware 대상 으로 바 꿉 니 다.시스템 시간 대 와 일치 하기 때문에 이 aware 대상 은 시간 대가 없 는 naive 대상 과 timetuple 을 실행 하 는 효과 와 같 습 니 다.
시간 대 변환 은 timezone 을 참조 합 니 다.즉,astimezone 방법 을 호출 합 니 다.매개 변 수 는 변 경 된 시간 대(tzinfo 인 스 턴 스)입 니 다.
Python 2 에 tzinfo(추상 적 인 기본 클래스)의 각 시간 대 인 스 턴 스 가 부족 하기 때문에 시간 대 대상 을 스스로 구성 해 야 합 니 다.
시간 대 인 스 턴 스 는 공식 문서 의 실현 datetime 을 참고 하거나 추천 하 는 제3자 라 이브 러 리 pytz 를 사용 할 수 있 습 니 다.
2.방법 2:시간차 계산
_EPOCH = datetime(1970, 1, 1, tzinfo=pytz.utc) # pytz
(aware_date - _EPOCH).total_seconds()
이 파 이 썬 에서 Epoch 를 만 드 는 방법 은 바로 편집장 님 께 서 여러분 께 공유 해 주신 모든 내용 입 니 다.참고 해 주시 고 많은 응원 부 탁 드 리 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.