Comment convertir des secondes en hh: mm: ss avec la balise de modèle de date de Django?

StackOverflow https://stackoverflow.com/questions/1816176

  •  08-07-2019
  •  | 
  •  

Question

Modifier: existe-t-il un moyen de convertir facilement {{valeur | date: " Z " }} vers l'un des formats + hh: mm ou -hh: mm (car date: "Z" renvoie xxxx ou -xxxx secondes).

Afficher ceci pour plus d'explications sur le format requis.

Merci et désolé pour mon anglais moche. ;)

Était-ce utile?

La solution

Pour clarifier ici, c'est le décalage de fuseau horaire qui nécessite les deux points, c'est-à-dire 2009-11-29T14: 33: 59-0600 dans l'exemple ci-dessus doit être 2009-11-29T14: 33: 59-06: 00 pour se conformer aux directives du W3C.

En regardant le code dans django / utils / dateformat.py :

  def O(self):
    "Difference to Greenwich time in hours; e.g. '+0200'"
    seconds = self.Z()
    return u"%+03d%02d" % (seconds // 3600, (seconds // 60) % 60)

Vous pouvez éditer votre copie locale de django pour ajouter le ':' so; renvoie u "% + 03d:% 02d " % (secondes // 3600, (secondes // 60)% 60) ou créez votre propre balise de modèle pour faire la même chose. Mais le plus simple est probablement de composer la chaîne dans votre vue et de la transmettre comme variable au modèle.

Il semble que la version HTML5 du fuseau horaire ne soit pas disponible immédiatement.

[mise à jour]

À la réflexion, vous pourriez probablement le faire;

>>> from django.utils import dateformat
>>> fmt = "Y-m-d\TH:i:sO"
>>> import datetime
>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2009, 12, 1, 12, 39, 48, 655867)
>>> str = dateformat.format(now, fmt)
>>> print str
2009-12-01T12:39:48+0000
>>>

puis ajoutez le ':'

>>> s = str[:-2] + ':' + str[-2:]
>>> s
u'2009-12-01T12:39:48+00:00'
>>> 

Autres conseils

Au lieu de Z, vous avez besoin de O (c’est un "oh", pas un "zéro").

>>> from django.template import *
>>> Template('{% now "Y-m-d\TH:i:sO" %}').render(Context())
u'2009-11-29T14:33:59-0600'
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top