如何将python的日期时间设置为(有点)相对于现在的某个时间?

2024-04-25 04:56:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我可以用python进行一些基本的时间计算,例如:

when = 'Mon Sep 08 00:00:00 +0000 2014'
frmt = "%a %b %d %H:%M:%S +0000 %Y"

then = datetime.datetime.strptime(when,frmt)
now = datetime.datetime.now()
delta = now-then
print delta

这将计算从的时间。你知道吗

我要做的是将when设置为一个非常特定的时间。时间将取决于今天是什么。我希望什么时候是从今天开始的前一个星期一的午夜(零点)。我该怎么做?


Tags: datetime时间nowsepdeltawhenprintthen
2条回答
>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2014, 9, 10, 12, 40, 25, 525000)
>>> when = now.replace(hour=0, minute=0, second=0, microsecond=0)
>>> when
datetime.datetime(2014, 9, 10, 0, 0)
>>> when.weekday()
2
>>> when = when - datetime.timedelta(when.weekday())
>>> when
datetime.datetime(2014, 9, 8, 0, 0)

这会给你想要的。你知道吗

from datetime import datetime, timedelta
today = datetime.now()
days_from_monday = today.weekday()
if days_from_monday == 0:
    days_from_monday = 7
monday = today + timedelta(days=-days_from_monday)
midnight_monday = monday.replace(hour=0, minute=0, second=0)

datetime.replace可以用来轻松地更改datetime的某些部分,但是请注意datetimes是不可变的,.replace返回一个新的。你知道吗

datetime.weekday会给你一周中的哪一天。星期一=0到星期六=6

相关问题 更多 >