En el settings.py
archivo de mi proyecto django , tengo esta línea:
TIME_ZONE = 'UTC'
Pero quiero que mi aplicación se ejecute en la zona horaria UTC + 2, así que la cambié a
TIME_ZONE = 'UTC+2'
Da el error ValueError: Incorrect timezone setting: UTC+2
. ¿Cuál es la forma correcta de hacer esto?
¡Gracias!
Para obtener un conjunto de todos los nombres de zona horaria (id) válidos de la base de datos tz , puede usar el
pytz
módulo en Python :fuente
pytz.common_timezones
.Elija una zona horaria válida de la base de datos tzinfo . Tienden a tomar la forma, por ejemplo,
Africa/Gaborne
yUS/Eastern
Encuentre la que coincida con la ciudad más cercana a usted, o la que tenga su zona horaria, luego establezca su valor
TIME_ZONE
para que coincida.fuente
Los valores válidos de timeZone se basan en la base de datos tz (zona horaria) utilizada por Linux y otros sistemas Unix. Los valores son cadenas (xsd: cadena) en la forma " Área / Ubicación ", en la que:
El área es un nombre de continente u océano. El área actualmente incluye:
La ubicación es la ciudad, isla u otro nombre regional.
Los nombres de zona y las abreviaturas de salida se adhieren a las convenciones de UNIX POSIX (interfaz de sistema operativo portátil), que usa signos positivos (+) al oeste de Greenwich y signos negativos (-) al este de Greenwich, que es lo contrario de lo que generalmente se espera. Por ejemplo, "Etc / GMT + 4" corresponde a 4 horas detrás de UTC (es decir, al oeste de Greenwich) en lugar de 4 horas antes de UTC (hora universal coordinada) (al este de Greenwich).
Aquí hay una lista de todas las zonas horarias válidas
Puede cambiar la zona horaria en su settings.py de la siguiente manera
fuente
Encontré esta pregunta buscando cambiar la zona horaria en el
settings.py
archivo de mi proyecto Django al Reino Unido.Usando la base de datos tz en la solución de jfs, encontré la respuesta:
fuente
Cambie TIME_ZONE a su zona horaria local y mantenga USE_TZ como True en 'setting.py':
TIME_ZONE = 'Asia / Shanghai'
USE_I18N = Verdadero
USE_L10N = Verdadero
USE_TZ = Verdadero
Esto escribirá y almacenará el objeto datetime como UTC en la base de datos de back-end.
Luego use la etiqueta de plantilla para convertir la hora UTC en su plantilla de interfaz como tal:
o utilice los filtros de plantilla de forma concisa:
Puede consultar más detalles en el documento oficial: zona horaria predeterminada y zona horaria actual
Cuando el soporte para zonas horarias está habilitado, Django almacena la información de fecha y hora en UTC en la base de datos, utiliza objetos de fecha y hora con reconocimiento de zona horaria internamente y los traduce a la zona horaria del usuario final en plantillas y formularios.
fuente
Solución universal, basada en el soporte de nombres TZ de Django :
+/- se cambia intencionalmente.
fuente
descargue el último archivo pytz (pytz-2019.3.tar.gz) desde:
cópielo y extráigalo al
site_packages
directorio en su proyectoen cmd ve a la carpeta extraída y ejecuta:
TIME_ZONE = 'Etc/GMT+2'
o nombre del paísfuente