2017-09-10 1 views
0

"EDT", "CDT"형식의 tz 이름이 있습니다.tzname 값 ("EDT", "CDT", ...)만을 갖는 datetime 인스턴스로 설정

이러한 tz 이름을 사용하여 시간대를 datetime 인스턴스로 설정할 수 있습니까? (*의 BSD, 리눅스, 솔라리스, 다윈 포함) 많은 유닉스 시스템에서

+0

짧은 대답은 '노 유효한 시간대 문자열을 잘 작동하지 않습니다. 그것은 할 수 없습니다. 왜 내가 거기에 대답의 첫 번째 부분에 설명에 연결된 중복. –

답변

0

, 는 시간대 규칙을 지정하려면 시스템은 zoneinfo (tzfile (5)) 데이터베이스 를 사용하는 것이 더 편리합니다. 이렇게하려면 TZ 환경 을 필요한 시간대 데이터 파일의 경로로 설정하고 시스템의 'zoneinfo'시간대 데이터베이스의 루트 (일반적으로 /usr/share/zoneinfo에 있음)를 기준으로 설정하십시오. 예 : 'US/Eastern', '호주/멜버른', '이집트'또는 '유럽/암스테르담'.

>>> os.environ['TZ'] = 'US/Eastern' 
>>> time.tzset() 
>>> time.tzname 
('EST', 'EDT') 
>>> os.environ['TZ'] = 'Egypt' 
>>> time.tzset() 
>>> time.tzname 
('EET', 'EEST') 

는 너무

+0

불행히도 그것은 내 시스템에 관한 것이 아닙니다. 이것은 스크레이퍼에서 JSON 데이터로받은 값입니다. 필자는 두 개의 별도 필드를 가지고 있습니다. datetime 및 tz 형식은 upper를 정의했습니다. 그리고 어떻게 든 datetime에 tz를 적용해야합니다. 나는 'America/Chicago'== 'CDT'를 알고있다. 'America/Chicago'문자열이 있으면 쉽게 만들 수 있습니다. 그러나 나는 'CDT'문자열 만 가지고 있으며, 그로부터 tz를 생성하는 방법을 찾을 수 없습니다. – uCodista

+0

당신은 strptime을 사용하여 string에서 creatr datetime 객체를 시도 할 수 있습니다. –

+0

2 개의 값이 있습니다; dt' 'my_time = dt.datetime.fromtimestamp (tstamp) 등 'tstamp = 15051384000' 'TZNAME = 'CDT'' '수입 날짜는' 어떻게 TZ을 적용 주어와 "my_time" "에 tz_name "? – uCodista