Sommaire

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 ...