2016-09-01 20 views
1

DjangoビューでTimeFieldをどのようにフォーマットしますか?私のDjangoのHTMLテンプレートで現在DjangoビューでDjango TimeFieldを作成する

私は簡単のような何かを行うことができます:{{movie.start_time|time:"g:iA"|lower}}

どのように私は、Djangoのビューで上記の同等を行うことができますか?

答えて

2

Python strftime()関数を使用します。 https://docs.python.org/2/library/time.html#time.strftime

+0

この回答は大丈夫ですが、djangoテンプレートの時刻書式設定の柔軟性が失われているようです。たとえば、 'AM'または 'PM'を小文字で表示するにはどうすればよいですか? –

+0

また、12時間形式の時刻は先行ゼロで表示されますが、これは望ましくありません。上記のdjango時間フィルタに最も近いのは、 'movie.start_time.strftime("%I:%M%p ")'です。この場合、時間に先行ゼロがあり、 'AM'と 'PM'が大文字になります。これは表示には間違いです。 –

+0

特別な必要条件がある場合、結果文字列に 'lower()'を呼び出すと 'strftime()'の結果を手で処理することができ、 'AM'を' am'に変換します。 –

0

以下は、これを実現する方法の例です。理想的ではありませんが、これは私が思いついたものです。

import datetime 

now = datetime.datetime.now() 
time = now.time() 

t = time.strftime("%I:%M %p") 
t = t.lower() 
t = list(t) 

if t[0] == '0': 
    t.pop(0) 

t = ''.join(t) 
print t 
関連する問題