장고에서 시간대를 설정하는 방법
의 내장고트에서에서.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에서 모듈을 사용할 수 있습니다.
>>> 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어울리게
유효한 timeZone 값은 Linux 및 기타 Unix 시스템에서 사용되는 tz(시간대) 데이터베이스를 기반으로 합니다.값은 "Area/Location" 형식의 문자열(xsd:string)이며, 다음과 같습니다.
지역은 대륙 또는 바다 이름입니다.현재 포함되는 영역:
- 아프리카
- 미국(북미 및 남미 모두)
- 남극대륙
- 북극
- 아시아
- 애틀랜틱
- 호주.
- 유럽
- 기타(관리 구역).예를 들어, "Etc/UTC"는 협정 세계시를 나타냅니다.)
- 인디언의
- 태평양의
위치는 도시, 섬 또는 기타 지역 이름입니다.
영역 이름과 출력 약어는 POSIX(휴대용 운영 체제 인터페이스) UNIX 규약을 준수합니다. POSIX는 그리니치 서쪽의 양(+) 기호와 그리니치 동쪽의 음(-) 기호를 사용합니다. 이는 일반적으로 예상되는 것과 반대입니다.예를 들어, "Etc/GMT+4"는 UTC(조정 세계시)(그린위치 동쪽)보다 4시간 늦은 것입니다.
settings.py 에서 다음과 같이 시간대를 변경할 수 있습니다.
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Asia/Kolkata'
USE_I18N = True
USE_L10N = True
USE_TZ = True
이것은 저에게 잘 작동합니다(저는 여전히 현지에서 앱을 테스트하고 있습니다).settings.py파일 형식:
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Asia/Beirut'
USE_I18N = True
USE_L10N = True
USE_TZ = False
#자신만의 TIME_ZONE 사용하기: https://gist.github.com/heyalexej/8bf688fd67d7199be4a1682b3eec7568
장고의 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'
의도적으로 전환되었습니다.
TIME_ZONE을 로컬 표준시로 변경하고 USE_TZ를 '설정에서 True로 유지합니다.파이':
TIME_ZONE = '아시아/상하이'
USE_I18N = 참
USE_L10N = 참
USE_TZ = 참
이렇게 하면 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에 저장하고, 표준 시간대 인식 날짜/시간 객체를 내부적으로 사용하며, 이를 템플릿 및 양식으로 최종 사용자의 표준 시간대로 변환합니다.
저는 이 질문이 제 장고 프로젝트의 표준 시간대를 변경하려고 하는 것을 발견했습니다.settings.py영국에 제출합니다.
jfs의 솔루션에서 tz 데이터베이스를 사용하여 다음과 같은 답을 찾았습니다.
TIME_ZONE = 'Europe/London'
다음은 유효한 시간대 목록입니다.
http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
다카의 시간대를 사용할 수 있습니다.
TIME_ZONE = 'Asia/Dhaka'
UTC+06:00(다카 또는 아스타나)
다음에서 최신 pytz 파일(pytz-2019.3.tar.gz)을 다운로드합니다.
https://pypi.org/simple/pytz/복사하여 추출합니다.
site_packages프로젝트의 디렉터리in cmd는 추출된 폴더로 이동하여 다음을 실행합니다.
python setup.py installTIME_ZONE = 'Etc/GMT+2'또는 국가 이름
영역/위치 형식을 올바르게 사용합니다.예:
TIME_ZONE = 'Asia/Kolkata'
기본 설정 TIME_ZONE을 추가하고 다음과 같이 USE_TZ를 False로 설정합니다.
- TIME_ZONE = '아시아/콜카타'
- USE_TZ = 거짓
효과가 있기를 바랍니다.
언급URL : https://stackoverflow.com/questions/29311354/how-to-set-the-timezone-in-django
'programing' 카테고리의 다른 글
| 목표-C에서 클래스에 대한 개인 메서드를 정의하는 가장 좋은 방법 (0) | 2023.05.25 |
|---|---|
| 쓰기-호스트와 쓰기-출력의 PowerShell 차이점은 무엇입니까? (0) | 2023.05.25 |
| 관찰 가능한 배열의 길이를 확인하는 방법 (0) | 2023.05.25 |
| '시스템' 유형의 예외입니다.메모리 부족'예외'가 던져졌습니다. (0) | 2023.05.25 |
| Mongo 컬렉션에서 특수 문자 작업 (0) | 2023.05.25 |