2016-09-21 71 views
2

我需要幫助解決與Python 3這個問題。我需要知道給定的日期,例如2017 06 02,是否在夏令時期或不。在Python中如何檢查給定時間是否在夏令時期間?

我在這裏和谷歌上尋找答案。但我發現基本上只是在當前日期解決這個問題。爲了修改這些例子以滿足我的需求,這對我來說太困難了:/不幸的是我對Python還沒有那麼高效。

完美的解決方案將會成爲錯誤的答案。然後,我將能夠繼續我的邏輯。

編輯: 正如我所說,我在這裏找到了一些解決方案。但他們都用當前時間來解決這個問題。我需要知道未來或過去的某個日期是否在夏令時期間。問題是,我是一名初級,並修改我發現我的需求對我來說太難了。

+0

[Python夏令時]的可能重複(http://stackoverflow.com/questions/2881025/python-daylight-savings-time) – techydesigner

+0

將會有一個(如果過渡時間不是午夜,可能會有兩個)每年的日期在知道日期沒有提供足夠的證據來確定是否是夏令時。另外,在您倒退的那一天,當天將有一個小時知道當地時間不會告訴您日間節能時間是否有效。 –

+0

因此,您應該使用['pytz'](http://pytz.sourceforge.net/)並遵循他們的建議,「處理時間的首選方式是始終以UTC工作,僅在生成時才轉換爲本地時間輸出將被人類讀取。「 –

回答

0
import time # imports the time module 
time.localtime().tm_isdst # localtime() returns a tuple 

當DST不生效時,值爲0。

當DST有效時,值爲1。

當DST未知時,值爲-1。

+1

謝謝。好吧,據我瞭解,這個例子適用於當前日期。但是如何與未來或過去的日期一起使用? –

+0

@SimonLickus我不確定。也許閱讀官方文檔? – techydesigner

2

好的,我想我自己設法做到了這一點。首先,我寫了這個功能:

import time 

def is_dst(date): 
    return bool(time.localtime(date).tm_isdst) 

接下來我真或假像這樣:

is_dst(time.mktime(MyDateObject.timetuple()))) 

我敢肯定,這不是最好的解決辦法,因爲我是一個總的Python小白,但它是爲我工作。所以現在從這一點我可以繼續我的邏輯。

相關問題