2009-07-10 4 views

답변

10

파이썬 Time 모듈을 확인하십시오.

from time import gmtime, strftime 
print strftime("%z", gmtime()) 

태평양 표준 시간

+0

다른 문서를 보거나 '% Z'입니까? – SilentGhost

+0

@ SilentGhost : "% z"와 (과) '% z'는 Python에서 완전히 동일합니다. – ahawker

+11

예, ** 대문자 **'Z' ** ** 소문자 **'z'는 아닙니다. – SilentGhost

60

작업을해야한다 :

import time 
time.tzname 

그것은 두 문자열의 튜플을 반환 : 첫 번째 로컬 비 DST 시간대의 이름이고, 두 번째는이다 로컬 DST 시간대의 이름입니다.

+19

이것을 더 취하기 위해'time.tzname [time.daylight]'를 사용하여 현재 시간대, 일광 절약 시간제. –

+9

다시 'time.daylight'는 DST가 활성화되었음을 나타내지 않습니다. DST가 표준 시간대에 따라 표시되는지 여부를 나타냅니다. 당신은 'time.localtime(). tm_isdst'을 찾고 있습니다. – marr75

+0

Windows 사용자를 추가하기 위해 시간대 값이'HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Time Zones \'에 정의되었습니다. – swdev

4

당신은 문자열을 통해 UTC 오프셋을 선호하는 경우 :

time.timezone/-(60*60) 
+4

DST가 유효하면 (/ if) 잘못 계산됩니다. – marr75

20

는 ThomasH의 대답에 같은 오프셋 UTC를 제공하지만, 계정에 일광 절약 시간이 걸립니다.

>>> import time 
>>> offset = time.timezone if (time.localtime().tm_isdst == 0) else time.altzone 
>>> offset/60/60 * -1 
-9 

time.timezone 또는 time.altzone의 값은 (UTC 지역 동쪽은 음의 값을 얻기에) UTC의 초 서쪽에있다. 이것은 우리가 실제로 그것을 좋아하는 것과 반대입니다. 그러므로 * -1.

time.localtime().tm_isdst은 현재 일광 절약 시간제가 적용되지 않는 경우 0입니다 (지역에서 최근 일광 절약 법을 변경 한 경우 올바르지 않을 수도 있음).

편집 : marr75는 정확합니다. 그에 따라 답변을 편집했습니다.

+1

안전을 위해서 오프셋 체크가 반대로되어 있어야한다고 생각합니다. (altzone = dst = 1 else timezone). DST 상태가 어떻게 든 알 수없는 경우,'tm_isdst'는'-1'이 될 것이고, 현재 코드는이 경우'altzone'으로 디폴트 될 것입니다. DST를 사용하지 않는 지역의 경우이 값은 정확하지 않으므로 'timezone'이 대체로 사용되어야합니다. (만약'-1'이 실제로'localtime'의 출력 일지 모르겠지만) – nmclean

+1

[모든 altzone, 일부 뚜렷한 경우 시간대 기반 해결책이 실패 할 수도 있습니다] (http://bugs.python.org/issue1647654) – jfs

11

오프셋 계산을위한 코드 스 니펫이 잘못되었습니다 (http://bugs.python.org/issue7229 참조). 이 모든 가능성, 영업 이익은 물었다 아니라 정확한 질문에

def local_time_offset(t=None): 
    """Return offset of local zone from GMT, either at present or at time t.""" 
    # python2.3 localtime() can't take None 
    if t is None: 
     t = time.time() 

    if time.localtime(t).tm_isdst and time.daylight: 
     return -time.altzone 
    else: 
     return -time.timezone 

하지만 페이지와 시간 버그에 대한 두 가지 잘못된 조각이 아래로 추적 빨아 있습니다

이 처리하는 올바른 방법은 수정해라.

+0

1.'tm_isdst'를 안다면; 'daylight' 2를 체크 할 필요가 없습니다. [모든'altzone','timezone' 기반 솔루션은 몇몇 엣지 경우에 실패 할 수 있습니다.] (http://bugs.python.org/issue1647654) – jfs

관련 문제