2016-11-25 31 views
0

爲什麼關閉1小時?datetime.utcnow()已關閉1小時

代碼:

from datetime import * 
print datetime.utcnow() 

結果:

2016-11-25 10:28:04.655978 

Servertime:

Fri Nov 25 11:28:11 CET 2016 
+1

好,UTC和CET相隔一小時。 –

+0

DST在您的應用程序中啓用,但不在服務器中啓用。 – RLM

+0

@RaphaelMoita這不是夏令時。現在是十一月。這是關於中歐在倫敦以東一小時的情況。 –

回答

1

datetime.utcnow()回報UTC(協調世界時)時間:UTC Time definition

要獲得與服務器相同的時間,請使用datetime.now()

In [8]: from datetime import datetime 

In [9]: datetime.utcnow() 
Out[9]: datetime.datetime(2016, 11, 25, 10, 32, 18, 288195) 

In [10]: datetime.now() 
Out[10]: datetime.datetime(2016, 11, 25, 11, 32, 22, 336213) 
+0

感謝這是一個很好的例子。 –

0

這是因爲你在不同的時區的服務器發生了。 (CET = +1)

>>> from datetime import datetime 
>>> 
>>> datetime.utcnow() 
datetime.datetime(2016, 11, 25, 10, 35, 33, 931951) 
>>> 

使用pytz模塊更改時區

pip install pytz 
0

,你也可以使用時區像

from datetime import datetime 
from pytz import timezone 

fmt = "%Y-%m-%d %H:%M:%S %Z%z" 

# Current time in UTC 
now_utc = datetime.now(timezone('UTC')) 
print now_utc.strftime(fmt) 

# Convert to US/Pacific time zone 
now_pacific = now_utc.astimezone(timezone('US/Pacific')) 
print now_pacific.strftime(fmt) 

# Convert to Europe/Berlin time zone 
now_berlin = now_pacific.astimezone(timezone('Europe/Berlin')) 
print now_berlin.strftime(fmt)