No settings.py
arquivo do meu projeto django , tenho esta linha:
TIME_ZONE = 'UTC'
Mas quero que meu aplicativo seja executado no fuso horário UTC + 2, então mudei para
TIME_ZONE = 'UTC+2'
Dá o erro ValueError: Incorrect timezone setting: UTC+2
. Qual é a maneira correta de fazer isso?
Obrigado!
Para obter um conjunto de todos os nomes válidos de fuso horário (ids) do banco de dados tz , você pode usar o
pytz
módulo em Python :fonte
pytz.common_timezones
.Escolha um fuso horário válido no banco de dados tzinfo . Eles tendem a assumir a forma, por exemplo,
Africa/Gaborne
eUS/Eastern
Encontre o que corresponde à cidade mais próxima de você ou a que possui seu fuso horário e defina seu valor
TIME_ZONE
como correspondente.fonte
Os valores válidos de timeZone são baseados no banco de dados tz (timezone) usado pelo Linux e outros sistemas Unix. Os valores são cadeias (xsd: cadeia) no formato " Área / localização ", nas quais:
Área é um nome de continente ou oceano. A área atualmente inclui:
Localização é a cidade, ilha ou outro nome regional.
Os nomes das zonas e as abreviações de saída seguem as convenções UNIX do POSIX (interface do sistema operacional portátil), que usam sinais positivos (+) a oeste de Greenwich e sinais negativos (-) a leste de Greenwich, que é o oposto do que geralmente é esperado. Por exemplo, "Etc / GMT + 4" corresponde a 4 horas atrás do UTC (ou seja, oeste de Greenwich) e não 4 horas antes do UTC (Tempo Universal Coordenado) (leste de Greenwich).
Aqui está uma lista de todos os fusos horários válidos
Você pode alterar o fuso horário em settings.py da seguinte maneira
fonte
Eu encontrei esta pergunta procurando alterar o fuso horário no
settings.py
arquivo do meu projeto Django para o Reino Unido.Usando o banco de dados tz na solução do jfs, encontrei a resposta:
fonte
Altere o TIME_ZONE para o seu fuso horário local e mantenha USE_TZ como True em 'setting.py':
TIME_ZONE = 'Ásia / Xangai'
USE_I18N = Verdadeiro
USE_L10N = Verdadeiro
USE_TZ = Verdadeiro
Isso gravará e armazenará o objeto datetime como UTC no banco de dados back-end.
Em seguida, use a tag template para converter a hora UTC no seu modelo de front-end da seguinte maneira:
ou use os filtros de modelo de forma concisa:
Você pode verificar mais detalhes no documento oficial: Fuso horário padrão e fuso horário atual
Quando o suporte a fusos horários está ativado, o Django armazena informações de data e hora no UTC no banco de dados, usa objetos de data e hora com reconhecimento de fuso horário internamente e os converte no fuso horário do usuário final em modelos e formulários.
fonte
Solução universal, baseada no suporte ao nome TZ do Django :
+/- é intencionalmente alternado.
fonte
baixe o arquivo pytz mais recente (pytz-2019.3.tar.gz) em:
copie e extraia-o para o
site_packages
diretório do seu projetono cmd, vá para a pasta extraída e execute:
TIME_ZONE = 'Etc/GMT+2'
ou nome do paísfonte