2012-03-30 3 views
-2

에 날짜에 내 코드를 정수로 변환 :파이썬

import datetime as dt 
import scikits.timeseries as ts 

ts_start_datetime= ts.Date(freq='T',year=2011,month=1,day=1,hour= 0,minute=0) 
ts_end_datetime = ts.Date(freq='T',year=2011,month=12,day=31,hour=23,minute=45) 

start_val = ts_start_datetime.value 
# 21564001 
end_val = ts_end_datetime.value 
# 22089586 

어떻게 datetime 객체에 start_valend_val을 변환합니까? 당신의 가치는 첫째, 분보다는 초 것으로 보인다 이후

답변

3

사용 datetime.fromtimestamp()는 60을 곱

start_dt = dt.datetime.fromtimestamp(start_val * 60) 
end_dt = dt.datetime.fromtimestamp(end_val * 60) 

를 대신 로컬 시간의 UTC 시간을 원하는 경우, datetime.utcfromtimestamp() 사용

>>> dt.datetime.utcfromtimestamp(21564001 * 60) 
datetime.datetime(2011, 1, 1, 0, 1) 
>>> dt.datetime.utcfromtimestamp(22089586 * 60) 
datetime.datetime(2011, 12, 31, 23, 46) 

내가 처음 시작한 후 1 분마다 왜 그런지 정확히 알 수는 없습니다. 전화를하기 전에 항상 60을 빼거나 dt.timedelta(minutes=1)을 최종 결과에서 뺍니다.

+1

저는 그들이 포괄적이라고 생각합니다. 즉, 그 순간의 시작에서 끝나기보다는 끝나는 순간을 포함합니다. 그렇지 않으면 한 범위가 종료되고 다른 범위가 즉시 시작되면 시작/종료 분을 공유합니다. – agf

+0

감사! F.J. 빠른 대답. – user1142937

+0

문제가 없으면이 솔루션이 작동하면 대답 옆에있는 체크 표시의 개요를 클릭하여 [동의] (http://meta.stackexchange.com/a/5235/155356) 할 수 있습니다. –