首页 > 解决方案 > 比较 2 次并在几分钟内得到差异

问题描述

我正在尝试使用两次来获得时差。我从 api 获得 2 个纪元时间戳,将它们转换为日期时间,然后尝试比较它们并以分钟为单位获得时差。

控制台中没有错误..当我返回它时,分钟只停留在 0.0。

onlinestatus = (data["session"]["online"])


    if onlinestatus is False:
        theNewLineString = "\n"
        lastLogout_string = "LastLogout: "
        log_in = int(data2["player"]["lastLogin"])
        log_out = int(data2["player"]["lastLogout"])
        log_in_converted = timedate = time.strftime('%Y-%m-%d\n%I:%M %p', time.localtime(log_in / 1000))
        log_out_converted = timedate = time.strftime('%Y-%m-%d\n%I:%M %p', time.localtime(log_out / 1000))
        diff = datetime.strptime(log_in_converted, '%Y-%m-%d\n%I:%M %p') - datetime.strptime(log_out_converted, '%Y-%m-%d\n%I:%M %p')

        return str("Online: ") + "`" + "False" + "`" + theNewLineString + theNewLineString + lastLogout_string + "`" + log_out_converted + theNewLineString + "`" + "Minutes Since Last Logout: " + "`" + str(diff.seconds/60) + "`"

我知道其他一切都有效。我正在使用不和谐机器人返回所有内容,这是它返回的内容:

Online: False

LastLogout: 2020-05-16
12:27 PM
Minutes Since Last Logout: 0.0

任何帮助表示赞赏!

标签: pythondatetime

解决方案


假设您有 2 个日期时间对象:

d1 = datetime.datetime.now()
d2 = datetime.datetime.now()

现在您可以从另一个中减去一个:

(d2 - d1)

这给出了结果:

datetime.timedelta(seconds=3, microseconds=516614)

然后您可以调用“秒”项并将其转换为分钟:

(d2 - d1).seconds / 60

希望这可以帮助。


推荐阅读