如何在Django視圖中格式化時間域?在Django視圖中格式化Django TimeField
目前在我的Django的HTML模板我可以輕而易舉地做這樣的事情:{{movie.start_time|time:"g:iA"|lower}}
我如何能做到上述的Django視圖等同?
如何在Django視圖中格式化時間域?在Django視圖中格式化Django TimeField
目前在我的Django的HTML模板我可以輕而易舉地做這樣的事情:{{movie.start_time|time:"g:iA"|lower}}
我如何能做到上述的Django視圖等同?
使用Python strftime()
函數。 https://docs.python.org/2/library/time.html#time.strftime
下面是如何實現此目的的一個示例。這並不理想,但這是我想出來的。
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
這個答案沒問題,但似乎失去了django模板時間格式的靈活性。例如,我將如何以小寫字母顯示'AM'或'PM'? –
同樣以12小時格式顯示的時間以前導零顯示,這是不可取的。距離上面提到的Django時間過濾器最近的是'movie.start_time.strftime(「%I:%M%p」)''。在這種情況下,小時有一個前導零,'AM'和'PM'是大寫,這對我的顯示目的是不正確的。 –
如果您有特殊要求,即對結果字符串調用'lower()',您可以始終手動處理'strftime()'的結果,這會將AM'轉換爲'am'。 –