计算一天之内不工作的两个日期之间的秒数差异

jum*_*urn 2 python datetime

我有一个接受日期的函数,并返回当时和当前时间之间的时间差(以秒为单位).它适用于不到一天的所有事情.但是当我甚至输入一个未来一年的日期时,它仍会返回大约84,000秒的数字(一天大约有86,400秒).

def calc_time(date):
    future_date = str(date)
    t_now = str(datetime.utcnow())
    t1 = datetime.strptime(t_now, "%Y-%m-%d %H:%M:%S.%f")
    t2 = datetime.strptime(future_date, "%Y-%m-%d %H:%M:%S.%f")
    return ((t2-t1).seconds)
Run Code Online (Sandbox Code Playgroud)

即使我使用日期为2014年的参数运行它,我的数字太低了.

有人有任何见解吗?

Pau*_*kin 5

阅读datetime.timedelta文档.

所有参数都是可选的,默认为0.参数可以是整数,长整数或浮点数,也可以是正数或负数.

内部只存储了几天,几秒和几微秒.参数转换为这些单位:

毫秒转换为1000微秒.一分钟转换为60秒.一小时转换为3600秒.一周转换为7天.然后将天,秒和微秒标准化,以使表示具有唯一性

0 <=微秒<1000000 0 <=秒<3600*24(一天中的秒数)-999999999 <=天数<= 999999999

解决方案是使用.total_seconds()而不是.seconds