Les timezones
Le dernier volet de la couleur locale est
la gestion correcte des timezones, car pour beaucoup d’utilisateurs
lambda, une heure UTC (Coordinated Universal Time) ne va pas signifier grand-chose et afficher la date
du lendemain pour une commande passée depuis la Chine,
ne fait pas nécessairement sérieux, même si
c’est techniquement compréhensible, les fuseaux
horaires étant une réalité.
Pour activer les timezones : positionnez USE_TZ=True dans
le fichier settings.py. Lorsque
le support des timezones est activé, Django stocke toutes les
dates en UTC dans la base de données, et les convertit
en temps local lors de l’affichage dans les formulaires et
les templates. Ainsi chaque utilisateur verra des dates et des heures
qui correspondent à son fuseau horaire.
Mais doit-on nécessairement activer
le support des timezones dans Django ? Mon site est en France et
s’adresse aux Français (ou aux autres Européens
du même fuseau horaire), donc je n’ai
pas besoin des timezones, n’est-ce pas ?
En fait à la première question
la réponse est oui et à la deuxième la
réponse est non. Si on n’active pas les timezones
on s’expose à des bugs imprévisibles
et non reproductibles au moment du changement d’heure c’est-à-dire
deux fois par an. Même si on n’en a pas besoin,
il est fortement recommandé de les activer.
Seulement, activer ...