2010-05-19 20 views
0

案例1爲什麼datetime.now()在django服務器內執行時顯示無效結果?

>>> datetime.__file__ 
'/usr/lib/python2.6/lib-dynload/datetime.so' 
>>> print datetime.datetime.now() 
2010-05-19 19:45:40.202634 

案例2

from django.db import models 
import datetime 
print datetime.__file__ 
print "--------------------------", datetime.datetime.now() 

----------- --------結果

Development server is running at http://127.0.0.1:8000/ 
Quit the server with CONTROL-C. 
Validating models... 
/usr/lib/python2.6/lib-dynload/datetime.so 
-------------------------- 2010-05-19 09:16:43.987508 
0 errors found 
+0

恩......對我來說很好。你能編輯你的問題來解釋這個輸出不能滿足你的期望嗎? – jcdyer 2010-05-19 14:43:20

+2

時區差異? – 2010-05-19 14:52:57

+0

是的,它似乎是由於時區差異。但如何解決與Django服務器的問題? – shahjapan 2010-05-19 18:13:42

回答

3

正如馬克指出它看起來像日本的時區差異:

>>> from dateutil import tz 
>>> from datetime import datetime 
>>> utc_time = datetime(2010, 5, 19, 9, 16, 43, tzinfo=tz.tzutc()) 
>>> jst_time = utc_time.astimezone(tz.gettz('Japan')) 
>>> print utc_time 
2010-05-19 09:16:43+00:00 
>>> print jst_time 
2010-05-19 18:16:43+09:00 

標準datetime模塊只處理天真時間,可以添加​​(特別是dateutil.tz.tzlocal()構造函數)的時區支持。

+0

你是對的內部django保持tzinfo settings.Time_Zone,我設置爲亞洲/加爾各答,它運作良好! – shahjapan 2010-05-20 09:59:56

相關問題