[python] 장고에서 시간대를 설정하는 방법?
내 django 프로젝트 settings.py
파일에는 다음 줄이 있습니다.
TIME_ZONE = 'UTC'
하지만 UTC + 2 시간대로 앱을 실행하고 싶습니다.
TIME_ZONE = 'UTC+2'
오류가 발생 ValueError: Incorrect timezone setting: UTC+2
합니다. 이 작업을 수행하는 올바른 방법은 무엇입니까?
감사!
답변
유효한 시간대 목록은 다음과 같습니다.
http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
당신이 사용할 수있는
TIME_ZONE = 'Europe/Istanbul'
UTC + 02 : 00
답변
tz 데이터베이스 에서 유효한 모든 시간대 이름 (id) 세트를 얻으려면 Python에서 모듈을 사용할pytz
수 있습니다 .
>>> import pytz # $ pip install pytz
>>> pytz.all_timezones_set
LazySet({'Africa/Abidjan',
'Africa/Accra',
'Africa/Addis_Ababa',
'Africa/Algiers',
'Africa/Asmara',
'Africa/Asmera',
...
'UTC',
'Universal',
'W-SU',
'WET',
'Zulu'})
답변
tzinfo 데이터베이스 에서 유효한 시간대를 선택하십시오 . 그들은 예를 들어 형태를 취하는 경향이 있습니다Africa/Gaborne
과US/Eastern
가장 가까운 도시 또는 시간대가있는 도시를 찾은 다음 일치하는 값을 설정하십시오 TIME_ZONE
.
답변
유효한 시간대 값은 Linux 및 기타 Unix 시스템에서 사용되는 tz (시간대) 데이터베이스를 기반으로합니다. 값은 ” Area / Location 형식의 문자열 (xsd : string)입니다. .
지역 은 대륙 또는 바다 이름입니다. 현재 지역 :
- 아프리카
- 아메리카 (북미 및 남미)
- 남극
- 북극
- 아시아
- 대서양
- 호주
- 유럽
- 기타 (관리 영역. 예를 들어 “Etc / UTC”는 협정 세계시를 나타냅니다.)
- 인도 사람
- 태평양
위치 는 도시, 섬 또는 기타 지역 이름입니다.
영역 이름 및 출력 약어는 POSIX (휴대용 운영 체제 인터페이스) UNIX 규칙을 따릅니다.이 규칙은 그리니치 서쪽의 양수 (+) 기호와 그리니치 동쪽의 음수 (-) 기호를 사용합니다. 이는 일반적으로 예상되는 것과 반대입니다. 예를 들어, “Etc / GMT + 4″는 UTC (협정 세계시) (그리니치 동부)보다 4 시간 앞서서 UTC보다 4 시간 (그리니치 서쪽)에 해당합니다.
다음과 같이 설정에서 시간대를 변경할 수 있습니다.
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Asia/Kolkata'
USE_I18N = True
USE_L10N = True
USE_TZ = True
답변
이 질문은 Django 프로젝트의 시간대를 변경하려고합니다. settings.py
파일 영국 .
jfs 솔루션에서 tz 데이터베이스를 사용하여 답을 찾았습니다.
TIME_ZONE = 'Europe/London'
답변
-
TIME_ZONE을 현지 시간대로 변경하고 ‘setting.py’에서 USE_TZ를 True로 유지하십시오.
TIME_ZONE = ‘아시아 / 상하이’
USE_I18N = True
USE_L10N = True
USE_TZ = True
-
백엔드 데이터베이스에 datetime 객체를 UTC 로 쓰고 저장 합니다.
-
그런 다음 템플릿 태그 를 사용 하여 프런트 엔드 템플릿에서 UTC 시간을 다음과 같이 변환하십시오.
<td> {% load tz %} {% get_current_timezone as tz %} {% timezone tz %} {{ message.log_date | time:'H:i:s' }} {% endtimezone %} </td>
또는 템플릿 필터를 간결하게 사용하십시오 .
<td>
{% load tz %}
{{ message.log_date | localtime | time:'H:i:s' }}
</td>
-
공식 문서에서 자세한 내용을 확인할 수 있습니다 : 기본 시간대 및 현재 시간대
시간대 지원이 활성화되면 Django는 날짜 시간 정보를 데이터베이스에 UTC로 저장하고, 시간대 인식 날짜 시간 객체를 내부적으로 사용하여 템플릿 및 양식의 최종 사용자 시간대로 변환합니다.
답변
Django의 TZ 이름 지원을 기반으로하는 범용 솔루션 :
UTC-2 = 'Etc/GMT+2'
UTC-1 = 'Etc/GMT+1'
UTC = 'Etc/GMT+0'
UTC+1 = 'Etc/GMT-1'
UTC+2 = 'Etc/GMT-2'
+/-가 의도적으로 전환되었습니다.