Django의 날짜 템플릿 태그와 함께 초를 HH : MM : SS로 변환하는 방법은 무엇입니까?

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

  •  08-07-2019
  •  | 
  •  

문제

편집 : 쉽게 변환 할 수있는 방법이 있습니까? {{ value|date:"Z" }} +HH : MM 또는 -HH : MM 형식 중 하나에 (날짜 : "Z"는 xxxx 또는 -xxxx 초를 반환).

보여 주다 이것 필요한 형식에 대한 자세한 설명.

감사합니다. 추악한 영어에 대해 죄송합니다. ;)

도움이 되었습니까?

해결책

여기서 명확히하면 결장이 필요한 시간대 오프셋입니다. 2009-11-29T14:33:59-0600 위의 예에서는해야합니다 2009-11-29T14:33:59-06:00 W3C 지침을 준수합니다.

코드를보고 있습니다 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)

편집 할 수 있습니다 Django의 현지 사본 ':'so; return u"%+03d:%02d" % (seconds // 3600, (seconds // 60) % 60) 또는 효과적으로 동일한 작업을 수행하기 위해 자신만의 템플릿 태그를 만듭니다. 그러나 아마도 가장 쉬운 것은 당신의 관점에서 문자열을 작성하고 그것을 템플릿으로 변수로 전달하는 것입니다.

HTML5 버전의 TimeZone을 상자에서 사용할 수있는 것처럼 보이지 않습니다.

업데이트

반성에서 당신은 아마 이것을 할 수 있습니다.

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

그런 다음 ':'를 추가하십시오.

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

다른 팁

Z 대신 O가 필요합니다 ( "0"이 아닌 "OH"입니다).

>>> from django.template import *
>>> Template('{% now "Y-m-d\TH:i:sO" %}').render(Context())
u'2009-11-29T14:33:59-0600'
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top