“1331856000000”과 같은 타임 스탬프가 포함 된 데이터 파일이 있습니다. 불행히도 형식에 대한 문서가 많지 않으므로 타임 스탬프 형식이 어떻게되는지 잘 모르겠습니다. 파이썬의 표준 datetime.fromordinal()
과 datetime.fromtimestamp()
다른 몇 가지를 시도 했지만 일치하는 것은 없습니다. 특정 숫자가 현재 날짜 (예 : 2012-3-16)와 일치하지만 그 이상은 아닙니다.
이 숫자를 어떻게로 변환 datetime
합니까?
답변
datetime.datetime.fromtimestamp()
JavaScript와 같이 밀리 fromtimestamp()
초 단위의 타임 스탬프를 가지고 있지만 유닉스 타임 스탬프 (초)를 예상 한다는 점을 제외하고는 정확합니다 .
그렇게하세요 :
>>> import datetime
>>> your_timestamp = 1331856000000
>>> date = datetime.datetime.fromtimestamp(your_timestamp / 1e3)
결과는 다음과 같습니다.
>>> date
datetime.datetime(2012, 3, 16, 1, 0)
귀하의 질문에 대답합니까?
편집 : JF Sebastian 은 (float )로 진정한 나누기 를 사용하도록 올바르게 제안했습니다 . 정확한 결과를 얻으려면 차이점이 중요하므로 내 대답을 변경했습니다. 차이점은 Python 2.x의 기본 동작에서 비롯되며, 연산자를 사용하여 나누면 항상 플로어 나누기 라고 하는 반환 됩니다 . 제수 (a )를 제수 ( float 로 표시 ) 또는 (또는 등)으로 바꾸면 나눗셈이 진정한 나눗셈이 됩니다. 파이썬 2.x는 반환 분할 에 의해 , 에 의해 ,1e3
1000
int
/
int
int
1000
int
1e3
1000
float(1000)
1000.
float
int
float
float
int
float
별 float
등을에 전달 된 타임 스탬프의 일부 소수 부가있는 경우 fromtimestamp()
에있어서,이 방법의 결과는 (마이크로 숫자 등)이 소수 부분에 대한 정보를 포함한다.