Disons que j'avais le code suivant
# settings.py in a proper location
...
TIME_ZONE = "Asia/Seoul"
USE_TZ = True
# models.py in a proper location
class Post(models.Model):
created = models.DateTimeField(auto_now_add=True)
def created_formatted(self):
return self.created.strftime("%Y/%m/%d %H:%M")
Ensuite, j'ai rendu le modèle Django suivant en HTML
before formatting: {{ a_post.created }} # localtime
after formatting: {{ a_post.created_formatted }} # not localtime
Je m'attendais à la fois {{ a_post.created }}
et {{ a_post.created_formatted }}
ont le même fuseau horaire, mais ils ne le font pas. J’ai essayé de savoir comment {{ a_post.created }}
est rendu à localtime mais je ne suis pas sûrUne partie du code Django est le bon endroit pour chercher encore. (Ce sera vraiment utile si vous me dites la bonne partie du code source de Django à rechercher). Je souhaite appliquer la même idée à ma created_formatted après avoir découvert comment fonctionne le rendu de datetime dans le modèle django.
p.s. je connais Comment convertir une heure de l'heure compatible avec le fuseau horaire en heure locale en Python. mais comment dois-je réellement le faire manuellement pour chaque méthode que j'ai? Tout conseil serait utile!
Réponses:
2 pour la réponse № 1De la docs
{% load tz %}
{% localtime on %}
{{ value }}
{% endlocaltime %}
{% localtime off %}
{{ value }}
{% endlocaltime %}
Si vous avez besoin d'un fuseau horaire spécifique
{% load tz %}
{% timezone "Europe/Paris" %}
Paris time: {{ value }}
{% endtimezone %}
{% timezone None %}
Server time: {{ value }}
{% endtimezone %}
Docs pour heure locale, Docs pour fuseau horaire