[python] gmtime ()의 시간 + 날짜 출력에서 ​​신기원 이후 초를 얻는 방법은 무엇입니까?

gmtime()시간 + 날짜를 넣고 초 수를 얻는 위치 를 어떻게 반대로 합니까?

와 같은 문자열 'Jul 9, 2009 @ 20:02:58 UTC'이 있으며 신기원과 2009 년 7 월 9 일 사이의 시간 (초)을 되찾고 싶습니다.

시도 time.strftime했지만 올바르게 사용하는 방법 또는 올바른 명령인지 잘 모르겠습니다.



답변

검색 엔진이 유닉스 타임 스탬프를 얻는 방법이라고 말했기 때문에 여기에 오 셨다면이 답변 읽기를 중단하십시오. 아래로 스크롤하십시오.

당신이 반전하고 싶다면 time.gmtime(), 당신은 원한다 calendar.timegm().

>>> calendar.timegm(time.gmtime())
1293581619.0

을 사용하여 문자열을 time.strptime()시간 튜플로 바꿀 수 있습니다 calendar.timegm().

>>> import calendar
>>> import time
>>> calendar.timegm(time.strptime('Jul 9, 2009 @ 20:02:58 UTC', '%b %d, %Y @ %H:%M:%S UTC'))
1247169778

캘린더 모듈에 대한 자세한 내용은 여기를 참조하십시오.


답변

시간 모듈을 사용하십시오 .

epoch_time = int(time.time())


답변

참고 time.gmtime타임 스탬프 매핑 01970-1-1 00:00:00.

In [61]: import time
In [63]: time.gmtime(0)
Out[63]: time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)

time.mktime(time.gmtime(0)) 로케일에 따라 달라지는 시간 소인이 표시되며 일반적으로 0이 아닐 수 있습니다.

In [64]: time.mktime(time.gmtime(0))
Out[64]: 18000.0

반대의 time.gmtimecalendar.timegm다음과 같습니다.

In [62]: import calendar
In [65]: calendar.timegm(time.gmtime(0))
Out[65]: 0


답변

ep = datetime.datetime(1970,1,1,0,0,0)
x = (datetime.datetime.utcnow()- ep).total_seconds()

이것은와 달라야 int(time.time())하지만 다음과 같은 것을 사용하는 것이 안전합니다x % (60*60*24)

datetime — 기본 날짜 및 시간 유형 :

시간 모듈과 달리 날짜 시간 모듈은 윤초를 지원하지 않습니다.


답변

t = datetime.strptime('Jul 9, 2009 @ 20:02:58 UTC',"%b %d, %Y @ %H:%M:%S %Z")


답변

원래 타임 스탬프에 따라 두 가지 방법이 있습니다.

mktime()timegm()

http://docs.python.org/library/time.html


답변