Python将datetime hour设置为特定的tim

2024-06-06 20:18:32 发布

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

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

这是我的代码:

    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

任何帮助都将不胜感激。


Tags: 代码importnewtodaydatetimedatedaysreplace
3条回答

这就是你想要的吗?

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

您可以使用date time.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))

首先,将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的分钟信息添加到格式字符串中。

相关问题 更多 >