strftime을 사용하여 python datetime을 epoch로 변환합니다.
에폭 이후의 초수를 원하는 UTC 시간이 있습니다.
strftime을 사용하여 초수로 변환하고 있습니다.2012년 4월 1일을 예로 들어보자.
>>>datetime.datetime(2012,04,01,0,0).strftime('%s')
'1333234800'
에폭으로부터의 2012년 4월 1일의 UTC 는 1333238400 이지만, 상기의 1333234800 이 반환되어 1시간 차이가 납니다.
즉, 스트레이트 타임은 시스템 시간을 고려하여 어딘가에서 타임존 시프트를 적용하는 것 같습니다.순진한 줄 알았는데?
어떻게 하면 피할 수 있을까요?가능하면 표준이 아닌 이상 다른 라이브러리를 Import하지 마십시오.(휴대성이 걱정됩니다.)
python datetime을 epoch 이후 초수로 변환하려면 명시적으로 다음과 같이 하십시오.
>>> (datetime.datetime(2012,4,1,0,0) - datetime.datetime(1970,1,1)).total_seconds()
1333238400.0
Python 3.3+에서는 대신 다음을 사용할 수 있습니다.
>>> datetime.datetime(2012,4,1,0,0).timestamp()
1333234800.0
사용하지 않는 이유datetime.strftime('%s')
Python은 strftime에 대한 인수로서 %s를 실제로 지원하지 않습니다(http://docs.python.org/library/datetime.html#strftime-and-strptime-behavior에서 확인하면 목록에 없습니다). 유일한 이유는 Python이 사용자의 로컬 시간대를 사용하는 시스템의 strftime에 정보를 전달하기 때문입니다.
>>> datetime.datetime(2012,04,01,0,0).strftime('%s')
'1333234800'
나는 타임존 등에 심각한 문제가 있었다.Python이 이 모든 것을 처리하는 방법은 (나에게) 꽤 혼란스럽다.캘린더 모듈을 사용하면 정상적으로 동작하고 있는 것 같습니다(링크 1, 2, 3, 4 참조).
>>> import datetime
>>> import calendar
>>> aprilFirst=datetime.datetime(2012, 04, 01, 0, 0)
>>> calendar.timegm(aprilFirst.timetuple())
1333238400
import time
from datetime import datetime
now = datetime.now()
time.mktime(now.timetuple())
import time
from datetime import datetime
now = datetime.now()
# same as above except keeps microseconds
time.mktime(now.timetuple()) + now.microsecond * 1e-6
(죄송합니다.기존 답변은 코멘트할 수 없습니다)
unix /timeout time 내의 타임스탬프만 필요한 경우 다음 행이 작동합니다.
created_timestamp = int((datetime.datetime.now() - datetime.datetime(1970,1,1)).total_seconds())
>>> created_timestamp
1522942073L
에 의존합니다.datetime
python2 및 python3에서 동작합니다.
명시적 시간대 독립 솔루션의 경우 pytz 라이브러리를 사용합니다.
import datetime
import pytz
pytz.utc.localize(datetime.datetime(2012,4,1,0,0), is_dst=False).timestamp()
출력(플로트): 1333238400.0
이것은 Python 2와 3에서 동작합니다.
>>> import time
>>> import calendar
>>> calendar.timegm(time.gmtime())
1504917998
공식 문서를 따라가면...https://docs.python.org/2/library/time.html#module-time
Python 3.7에서는
date.isoformat() 및 datetime.isoformat() 중 하나의 형식으로 date_string에 대응하는 datetime을 반환합니다.특히 이 함수는 YYY-MM-DD[*HH[:] 형식의 문자열을 지원합니다.MM[:SS[.ff[ff]]][+]HH : MM [ : SS [ . fffff ] 。* 는 임의의 단일 문자와 일치할 수 있습니다.
https://docs.python.org/3/library/datetime.html#datetime.datetime.fromisoformat
언급URL : https://stackoverflow.com/questions/11743019/convert-python-datetime-to-epoch-with-strftime
'programing' 카테고리의 다른 글
파일의 절대 경로 가져오기 (0) | 2022.09.30 |
---|---|
pom.xml의 modelVersion이 필요하고 항상 4.0.0으로 설정되어 있는 이유는 무엇입니까? (0) | 2022.09.30 |
C/C++ 비트가 1개 설정되어 있는지 확인합니다(예: int 변수). (0) | 2022.09.30 |
python + NumPy / SciPy를 사용하여 롤링/이동 평균을 계산하는 방법 (0) | 2022.09.30 |
python으로 요청을 포함한 "멀티파트/폼 데이터"를 전송하려면 어떻게 해야 합니까? (0) | 2022.09.30 |