2017-02-10 57 views
0

我使用的時區感知對象在我的應用程序,除非我有一個TimeField表示一天中的通用,日時間:將Django TimeField與可識別時區的日期時間進行比較;比較天真的時間timezone.now()

class MyModel(models.Modal): 
    ... 
    start_time = models.TimeField() 

然而,在某些點,我需要使用服務器的時區將當前時間:timezone.now()與start_time進行比較,以查看時間是否在任何給定日期過去。

如何將start_time轉換爲可與timezone.now()進行比較的可識別時區的日期時間對象?

我使用USE_TZ = True

+0

你試過localize()還是as_timezone()? – deweyredman

+0

另外,如何創建開始時間?作爲一個天真的日期時間或時區知道嗎? – deweyredman

+0

另外,你爲什麼不使用日期時間? – deweyredman

回答

1

這是一個簡單的方法:

from django.utils.timezone import now, localtime 

if model.start_time >= localtime(now()).time(): 
    # do stuff 

注意localtime()使用當前的時區,這是默認的時區,如果沒有明確設定。如果這不是您想要的,您可以指定所需的時區作爲localtime()的參數。

另請注意,從Django 1.11開始,您可以簡單地使用localtime().time()