我花了过去一小时挖掘
Python文档和许多SO问题;请原谅我是另一个Python新手被Python时代的谜团所困扰.
我的目标是确定当前时间和某个日期/时间之间的差异,而不管过去/将来,并返回可执行的格式,如秒.
例如,如果输入是下午2:00和下午4:00(现在),我想要说“-7200”,表示事件发生在两个小时的AGO.如果输入是星期五下午4点(现在)和太阳5:00 PM,输出应为“176400”秒,代表从现在开始的两天和一个小时.
这是我试过的东西
>我的第一个版本是一个使用字符串时间戳并将其拼接到多个变量的函数,然后进行比较.它有很多错误,我想象如果我发布在这里,我将负责一个程序员抛出.
>我绊倒了这个神奇的timedelta功能,并探索了文档和SO,但我不认为这是我正在寻找的.
>我的想法是将时间戳从时代转换成秒,然后减去,但是如果减法是错误的顺序(不同的情况下,如果事件在将来),这将成为一个问题,我觉得将if语句添加到检查秒钟的标志将是笨重的,要避免的事情.
这是我当前的代码(仍然需要修改“双向”比较),从以前解决的SO问题:
now = time.strftime("%a %b %d %H:%M:%S %Y")
then = time.ctime(os.path.getmtime("x.cache"))
tdelta = datetime.strptime(now, '%a %b %d %H:%M:%S %Y') - datetime.strptime(then, '%a %b %d %H:%M:%S %Y')
但是,如果连接这些点,我很失望.
我该如何做到这一点?