Python获得夏季断点

时间:2014-08-18 15:19:40

标签: python time

我是Python新手,但我认为这是一个简单的问题。我正在解析txt日志文件:timestamp值,timestamp值等等......

我使用UTC时间将数据保存在数据库中,因为否则每年有一个小时我会在每个时间戳(我们从夏天到冬天切换的时间)中有两个值。

我的问题是,如何获得3月最后一个星期天的时间戳?我试过这样的事情:

x = 2014
ts_raw = x, 3, 31 - int(time.strftime("%w", (x, 3, 31, 0, 0, 0, 0, 0, 0))), 2, 0, 0, 0, 0, 0
ts = time.mktime(ts_raw)

看起来不太优雅也不行......因为这部分:

time.strftime("%w", (x, 3, 31, 0, 0, 0, 0, 0, 0))

这总是返回1 ...

我认为必须有一个更好的方法来做到这一点...所以请有人发布几行代码吗?

1 个答案:

答案 0 :(得分:0)

这可能不是最简洁的解决方案,但引用zen of python Explicit比隐式更好。

from datetime import date, timedelta
import calendar
import time

last = date(2014, 3, 31)
delta = (last.weekday() - calendar.SUNDAY) % 7
lastsunday = last - timedelta(days=delta)            # 2014-03-30
print time.mktime(lastsunday.timetuple())

Here 2014年3月的日历。