2012-08-13 2 views
0

JS 스크립트를 통해 날짜/시간을 캡처하고 UTC 형식 (예 : 134250270000)으로 초를 계산하는 웹 응용 프로그램이 있습니다. 백엔드에는 DB에서 데이터를 가져 오는 Python 스크립트가 있습니다 PST 형식의 신기원 이후의 초 단위로 저장된 날짜/시간이 있습니다. 항상 신기원에서 계산 된 경우 UTC와 PST 사이에 초 차이가 있습니다.Python UTC에서 PST/PDT 형식으로 변환

에포크부터 초까지 PTC 초로 UTC 초를 변환 할 수있는 방법이 있습니까? PST 시간대의 일광 변화도 기록해야합니다.

편집 :

I have the seconds since epoch in UTC format: 

1342502700 

I found that I get the sum in seconds between UTC and local standard time via: 

>>> time.timezone/3600 
8 

So If I add 1342502700 to time.timezone: 

>>> print 1342502700 + time.timezone 
1344153600 

는 항상/PST 시간 나에게 제대로 PDT를 줄 것인가?

편집 :

은 어쩌면이 올바른 하나입니다 일광 절약 시간이 현재 적용되는 경우

>>> import time 
>>> offset = time.timezone if (time.daylight == 0) else time.altzone 
>>> offset/60/60 
7 

time.daylight이 아닌 0이됩니다.

+2

내가 틀릴 수도 있지만, 나는 '시대 이후의 초는'항상 UTC에 따라 측정되는 것을 확신 : 당신이 처리해야하는 경우이 게시물을 참조하십시오. 신기원 이후의 시간 (초)은 지구상의 어디에 있든 동일하지만, 현지 시간대에 따라 하루 중 1 시간으로 변환하는 방법은 다릅니다. – DaoWen

+0

UTC 형식의 134250270000은 하나의 값을 인쇄하고 PTC 형식의 134250270000은 다른 것을 인쇄합니다. 그렇다면이 시간 (초) 134250270000부터 PST 1 초로 변환하는 방법을 알려주십시오. – Prakash

+1

그게 나에게 맞는 행동처럼 들리네. UTC는 GMT와 동일하므로 UTC 형식으로 초를 인쇄하는 것은 PST 형식의 동일한 값을 인쇄하는 데 몇 시간이 걸릴 수 있습니다. – DaoWen

답변

0

나는 어딘가에 당신의 전환이 생각 나게하는 시간대가 있다고 생각합니다. 에 관계없이, 나는 당신이 찾고있는 것은 time.altzone 생각 :

>>> from time import * 
>>> ctime(time()) 
'Mon Aug 13 16:54:02 2012' 
>>> ctime(time()+altzone) 
'Mon Aug 13 08:54:04 2012' 

내 현지 시간 (첫 번째)이 나중에 UTC보다 내가 지금 타이페이의 시간입니다.

편집 : 내가 daylight 제로가 아닌 경우에만 altzone를 사용 말한다 설명서의 라인을 놓쳤다. 분명히 당신이 일광 절약 시간제 어딘가에 살고 있다면 생각했던 것보다 조금 더 복잡합니다.

Python: get timezone based on DST for a timestamp

+0

방금 ​​찾은 내용을 업데이트했습니다. 링크를 이용해 주셔서 감사합니다. 같은 생각을 알려주세요. – Prakash

+0

업데이트가 나에게 잘 어울립니다! 단순히 'daylight == 0'이 필요한지 확인하는 것만으로 충분합니다. – DaoWen