web-dev-qa-db-fra.com

Comment définir le fuseau horaire dans Django?

Dans mon fichier settings.py du projet Django, j'ai cette ligne:

TIME_ZONE = 'UTC'

Mais je veux que mon application s'exécute dans le fuseau horaire UTC + 2, je l'ai donc modifiée en

TIME_ZONE = 'UTC+2'

Cela donne l'erreur ValueError: Incorrect timezone setting: UTC+2. Quelle est la bonne façon de faire cela?

Merci!

108
jeff

Voici la liste des fuseaux horaires valides:

http://en.wikipedia.org/wiki/List_of_tz_database_time_zones

Vous pouvez utiliser

TIME_ZONE = 'Europe/Istanbul'

pour UTC + 02: 00

169
Selcuk

Pour obtenir un ensemble de tous les noms de fuseau horaire valides (ids) de la base de données tz , vous pouvez tilisez le module pytz de 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'})
16
jfs

Choisissez un fuseau horaire valide dans le base de données tzinfo . Ils ont tendance à prendre la forme, par exemple Africa/Gaborne et US/Eastern

Recherchez celle qui correspond à la ville la plus proche de chez vous ou celle qui a votre fuseau horaire, puis définissez votre valeur de TIME_ZONE pour qu'elle corresponde.

11
Crast

J'ai trouvé cette question qui cherchait à changer le fuseau horaire dans mon fichier settings.py de mon projet Django au Royaume-Uni.

En utilisant la base de données tz dans la solution de jfs, j'ai trouvé la réponse:

    TIME_ZONE = 'Europe/London'
2
Mark