2016-01-07 46 views
0

我在django中遇到了一些時間格式問題。django中的時間格式問題

我的模型DateTimeField使用auto_now來存儲日期時間,我試圖用這個日期時間域來過濾數據。 我用於comapre的輸入日期時間是不同的格式,如2016-1-5T5:00:00和存儲在djnago模型中的日期時間是默認的django格式,因爲我使用的是auto_now。 我得到的錯誤如下:

RuntimeWarning: DateTimeField MyModel.modified_at received a naive datetime (2016-01-05 05:00:00) while time zone support is active. 
    RuntimeWarning) 

所以我想我需要輸入時間轉換爲Django的合適的格式。 任何想法如何我可以比較這兩個日期,以便我的查詢可以過濾正確的數據。

+0

@AmalTs我很喜歡那部分,但是當我做這個'datetime.datetime(my_time_inut)'我會得到錯誤,說str不允許 – user5594493

+0

但是你使用'django.utils import timezone'嗎? –

+0

@AmalTs yes從utils – user5594493

回答

0

你有沒有嘗試過使用時區知曉日期時間?例如

datetime.datetime(2013, 11, 20, 20, 8, 7, 127325, tzinfo=<UTC>) 

你可以這樣說:

import pytz 
timezone_aware_time = pytz.timezone('UTC').localize(datetime.datetime(2013, 11, 20, 20, 8, 7, 127325)) 

爲了讓您的字符串轉換成兼容的格式,然後給它一個時區,這樣做:

import datetime from datetime 
datetime.strptime('2016-1-5T5:00:00', '%Y-%m-%dT%H:%M:%S') 

所以,乾脆:

import pytz 
import datetime from datetime 
timezone_aware_time = pytz.timezone('UTC').localize(datetime.strptime('2016-1-5T5:00:00', '%Y-%m-%dT%H:%M:%S')) 

僅供參考, auto_now在UTC時區中。

+0

我已經嘗試過這個部分,但是當我做這個datetime.datetime(my_time_inut)時,我會得到錯誤說str不允許 - >一個整數是必需的(得到類型str) – user5594493

+0

你可以發佈什麼my_time_inut是?另外,你的意思是inut或輸入? – Morifen

+0

它被輸入,格式爲「2016-1-5T5:00:00」。我得到這個輸入從智能手機 – user5594493