Python将datetime hour设置为一个特定的时间



我想把日期定在昨天晚上11点30分。

下面是我的代码:
    import datetime
    yesterday = datetime.date.today () - datetime.timedelta (days=1) 
    PERIOD=yesterday.strftime ('%Y-%m-%d') 
    new_period=PERIOD.replace(hour=23, minute=30)
    print new_period

但是我得到这个错误:

TypeError: replace() takes no keyword arguments

首先,将datetime.date.today()更改为datetime.datetime.today(),以便您可以操作一天的时间。

调用replace,然后将时间转换为字符串。

所以不是:

PERIOD=yesterday.strftime ('%Y-%m-%d') 
new_period=PERIOD.replace(hour=23, minute=30)

这样做:

new_period=yesterday.replace(hour=23, minute=30).strftime('%Y-%m-%d')
print new_period

还要记住,您要转换的字符串不显示关于小时或分钟的信息。如果您对此感兴趣,请在格式字符串中添加%H(小时)和%M(分钟)信息。

可以使用datetime.combine(date, time, tzinfo=self.tzinfo)

import datetime
yesterday = datetime.date.today () - datetime.timedelta (days=1)
t = datetime.time(hour=23, minute=30)
print(datetime.datetime.combine(yesterday, t))

这是你想要的吗?

from datetime import datetime
yesterday = datetime(2014, 5, 12, 23, 30)
print yesterday

编辑

from datetime import datetime
import calendar
diff = 60 * 60 * 24
yesterday = datetime(*datetime.fromtimestamp(calendar.timegm(datetime.today().utctimetuple()) - diff).utctimetuple()[:3], hour=23, minute=30)
print yesterday

一行,就是这样

import datetime
new_period=(datetime.datetime.today()- datetime.timedelta (days=1)).replace(hour=23, minute=30)

相关内容

  • 没有找到相关文章

最新更新