Risposte:
Ecco l'elenco dei fusi orari validi:
http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
Puoi usare
TIME_ZONE = 'Europe/Istanbul'
per UTC + 02: 00
Per ottenere un set di tutti i nomi di fuso orario (id) validi dal database tz , è possibile utilizzare il pytz
modulo in 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'})
pytz.common_timezones
.
Scegli un fuso orario valido dal database tzinfo . Tendono a prendere la forma ad es. Africa/Gaborne
EUS/Eastern
Trova quello che corrisponde alla città più vicina a te, o quello che ha il tuo fuso orario, quindi imposta il valore di TIME_ZONE
affinché corrisponda.
I valori di timeZone validi si basano sul database tz (fuso orario) utilizzato da Linux e altri sistemi Unix. I valori sono stringhe (xsd: string) nel formato " Area / Posizione ", in cui:
L'area è un nome di continente o oceano. L'area attualmente include:
La posizione è la città, l'isola o un altro nome regionale.
I nomi delle zone e le abbreviazioni di output aderiscono alle convenzioni UNIX POSIX (interfaccia del sistema operativo portatile), che utilizza segni positivi (+) a ovest di Greenwich e segni negativi (-) a est di Greenwich, che è l'opposto di quanto generalmente previsto. Ad esempio, "Etc / GMT + 4" corrisponde a 4 ore dietro UTC (ovvero a ovest di Greenwich) anziché a 4 ore avanti rispetto a UTC (Coordinated Universal Time) (ad est di Greenwich).
Ecco un elenco di tutti i fusi orari validi
È possibile modificare il fuso orario in settings.py come segue
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Asia/Kolkata'
USE_I18N = True
USE_L10N = True
USE_TZ = True
Cambia TIME_ZONE nel fuso orario locale e tieni USE_TZ su True in "setting.py":
TIME_ZONE = "Asia / Shanghai"
USE_I18N = True
USE_L10N = True
USE_TZ = True
Ciò scriverà e memorizzerà l'oggetto datetime come UTC nel database back-end.
Quindi utilizzare il tag modello per convertire l'ora UTC nel modello frontend in quanto tale:
<td>
{% load tz %}
{% get_current_timezone as tz %}
{% timezone tz %}
{{ message.log_date | time:'H:i:s' }}
{% endtimezone %}
</td>
oppure utilizza i filtri modello in modo conciso:
<td>
{% load tz %}
{{ message.log_date | localtime | time:'H:i:s' }}
</td>
È possibile controllare ulteriori dettagli nel documento ufficiale: fuso orario predefinito e fuso orario corrente
Quando il supporto per i fusi orari è abilitato, Django archivia le informazioni sul datetime in UTC nel database, utilizza internamente oggetti datetime con riconoscimento del fuso orario e li traduce nel fuso orario dell'utente finale in modelli e moduli.
scarica l'ultimo file pytz (pytz-2019.3.tar.gz) da:
https://pypi.org/simple/pytz/
copiarlo ed estrarlo nella site_packages
directory sul tuo progetto
in cmd vai alla cartella estratta ed esegui:
python setup.py install
TIME_ZONE = 'Etc/GMT+2'
o nome del paese