我是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 ...
我认为必须有一个更好的方法来做到这一点...所以请有人发布几行代码吗?
答案 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月的日历。