2007-08-14

 

Python Cookbook 3.8 判断夏令时是否有效

需求:

你需要知道当前的夏令时在你的时区是否有效.

讨论:

很容易想到使用time.daylight方法,但实际上不是的:

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

在我处于的时区中,time.daylight总是1,因为time.daylight表示一年中有些夏令时存在.并不是说判断今天是否是夏令时.
然而调用time.localtime ,仅当当天是夏令时后,才返回1,否则返回0.本节将这个调用进行的封装,并返回内建的bool类型,你也可以使用time.localtime()[-1]来访问这个值,但是使用tm_isdst更可读一些.

相关说明:

夏令时,又称"日光节约时制"(Daylight Saving Time),是一种为节约能源而人为规定地方时间的制度,在这一制度实行期间所采用的统一时间称为"夏令时"。一般在天亮早的夏季人为将时间提前一小时, 可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电。各个采纳夏时制的国家具体规定不同。目前全世界有近110个国家每年要实行夏令 时。

据说最早建议使用夏时制的是本杰明・富兰克林,他在任美国驻法国大使期间,由于习惯于当时美国农村贵族的早睡早起生活,早上散步时看到法国人10 点才起床,夜生活过到深夜。于是他在1784年的一期《巴黎杂志》上发表了一篇文章,说法国人的生活习惯浪费了大好的阳光,建议法国人早睡早起,说每年可 以节约6千4百万磅蜡烛。但他当时并没有建议实行夏时制,因为当时根本还没有统一的时区划分。不过夏时制在英语里就是"节约阳光时间"的意思。

直到1907年,一位英国建筑师威廉・维莱特(William Willett)才正式向英国议会提出夏时制的设想,主要是为了节省能源和提供更多的时间用来训练士兵,但议会经过辩论没有采纳。

1916年,德国首先实行夏时制,英国因为怕德国会从中得到更大的效益,因此紧跟着也采取了夏时制,夏时制节约了约15%的煤气和电力,但为了弥 补损失,电力和煤气公司也将价格提高了15%。法国不久也效仿实行。1917年,俄罗斯第一次实行了夏令时,但直到1981年才成为一项经常性的制度。 1918年,参加了第一次世界大战的美国也实行了夏时制,但战后立即取消了。

1942年,第二次世界大战期间,美国又实行了夏时制,1945年战争结束后取消。1966年,美国重新实行夏时制。欧洲大部分国家从1976年,即第四次中东战争导致首次石油危机3年后(1973年)开始实行夏时制。

根据联合国欧洲经济委员会的建议,从1996年起夏令时的有效期推迟到10月份的最后一个星期日。

标签:


Comments: 发表评论



<< Home

This page is powered by Blogger. Isn't yours?