如何仅从日期时间对象获取小时和分钟

时间:2018-07-10 18:27:54

标签: python python-3.x

我目前有一个程序可以跟踪一个人何时登录,以及他们何时因不和而退出。该程序以日期时间对象的形式给出了签署时间和签署时间,并且将它们彼此相减,得出总数。问题是我希望它只给我小时和分钟,而不是秒和毫秒。 代码如下所示:

@bot.event
async def on_message(message):
    if "on" in message.content:
        player = message.author
        time = message.timestamp
        message_type = 'on'
        with open(str(player) + " on", 'w') as f:
            f.seek(0)
            f.truncate()
            f.write(str(time))
    elif "off" in message.content:
        player = message.author
        off_time = message.timestamp
        with open(str(player) + " on",'r+') as f:
            on_time = f.readline()
            f.seek(0)
            f.truncate()
        on_time = parser.parse(on_time)
        total = off_time - on_time
        print(total)

注意:总对象是timedelta对象,而不是timedate对象。

1 个答案:

答案 0 :(得分:-1)

这为您提供小时和分钟,为int

import datetime
datetime.datetime.now().minute
datetime.datetime.now().hour

如果要保留日期时间对象,请使用replace

datetime.datetime.now().replace(second=0, microsecond=0)

timedelta

minute = (datetime.datetime.now() - datetime.datetime.now()).total_seconds()/60
rounded_minute = round(minute)

小时是相同的,但您需要将rounded_minute除以60