过去一小时我一直在挖掘Python文档和许多SO问题; 请原谅我是另一个被Python中时差之谜困住的Python新手.
我的目标是确定当前时间与特定日期/时间之间的差异,无论是在过去还是将来,并返回一个可行的格式,如秒.
例如,如果输入是下午2:00和下午4:00(现在),我希望它说"-7200",表示事件发生两个小时AGO.如果输入是下午4:00(现在)和太阳下午5:00,则输出应为"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')
Run Code Online (Sandbox Code Playgroud)
而且我觉得我应该以某种方式从这里拉出几秒钟,就像在这个问题中: Python的timedelta:我不能只是在任何时间进入单位我想要整个差异的价值?
但我对如何连接这些点感到迷茫.
我怎么能做到这一点?