2016-09-21 9 views
2

私はPython 3でこの問題を解決するのに役立つ必要があります。たとえば、2017 06 02のように、指定された日付が夏時間期間かどうかを知る必要があります。Pythonでは、指定された時刻が夏時間にあるかどうかをチェックする方法はありますか?

私はこことGoogleで答えを探していました。しかし、私が見つけたのは基本的にこの問題を現在の日付だけで解決することです。これらの例を私のニーズに合わせて変更するのは難しいです。/残念ながら、私はまだPythonで効率的ではありません。

完璧な解決策は、答えとして偽に真実になることです。それから私は自分の論理を進めることができます。

編集: ここで私はいくつかの解決策を見つけました。しかし、彼らはすべてこの問題を現在の時間で解決しています。将来または過去の日付が夏時間にあるかどうかを知る必要があります。問題は、私が中学生であり、自分のニーズに合った例を修正することが、私にとっては難しいことです。

+0

[Python夏時間の複製](http://stackoverflow.com/questions/2881025/python-daylight-savings-time) – techydesigner

+0

可能性があります(移行時間が真夜中でない場合は2つあります)日付を知っていても、夏時間であるかどうかを判断するのに十分な証拠は得られません。また、あなたが戻ってくる日には、その日に1時間ありますが、現地時間を知っても、昼間の節約時間が有効かどうかはわかりません。 –

+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

[OK]を、私は自分でこれを行うことができたと思う。私はこのような真または偽だ

import time 

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

次:

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

私は総パイソンのnoobだとして、これは最善の解決策ではないことを確信しているが、それは最初に私は、この関数を書きました私のために働く。だからこの時点から、私は自分の論理で動くことができます。

関連する問題