2015-09-25 93 views
0

我收到格式爲12:00的時間,並且我還有一個格式爲<DstTzInfo 'Europe/Paris' PMT+0:09:00 STD>的時區。我想看看,如果這個日期在那個時區已經過去了。檢查時區的日期是否通過當前時間

我現在的時區可能是從我收到的時區不同,所以我用了以下內容:

tz = pytz.timezone('Europe/Paris') 
d = parse("14:39").replace(tzinfo=tz) 
now = datetime.datetime.now(tz) 
print (d - now).total_seconds() 

即使在巴黎的當前時間是14:39,我仍然得到6600秒。我也試過now = datetime.datetime.replace(tzinfo=tz),但是我得到了-3600秒。

我想要的是有時間在指定的時區,檢查它是否通過。

回答

0

這個怎麼樣:

from datetime import datetime 
from dateutil import tz 

tz = tz.gettz('Europe/Paris') 
now = datetime.now().replace(tzinfo=tz) 
d = datetime.strptime("{0}/{1}/{2} 14:39".format(now.year,now.month,now.day), "%Y/%m/%d %H:%M").replace(tzinfo=tz) 

print (d-now).total_seconds() 

我保持當前的時間現在,在歐洲/巴黎時區,並在同一個時區創建d。如果他們的差異是負數,那麼該時間段已經過去了。

+0

如果現在的一天發生了變化,該怎麼辦? –

+0

嗯,我對你的問題沒有完全理解,但我想你應該每次做這個時都要重新初始化,所以你可以用當前時間重新計算。 – primero

相關問題