我花了一个小时研究Python文档和许多这样的问题;请原谅我是另一个被Python的时间差之谜困住的Python新手。
我的目标是确定当前时间和某个日期/时间之间的差异,而不考虑过去/将来,并返回一个可行的格式,如秒。
例如,如果输入是2:00PM和4:00PM(现在),我希望它是“-7200”,表示两小时前发生的事件。如果输入是周五下午4:00(现在)和太阳下午5:00,则输出应为“176400”秒,表示从现在开始的两天零一小时。
以下是我试过的。。。我的第一个版本是一个函数,它获取一个字符串时间戳并将其分段为多个变量,然后对它们进行比较。它很笨重,有很多错误,我想如果我把它贴在这里,我会对一个程序员的呕吐负责。
我偶然发现了这个神奇的timedelta函数,并探索了文档等等,但我不认为它能满足我的需求。
我本来想把这两个时间戳都转换成从epoch开始的秒,然后再进行减法,但是如果减法的顺序不对(如果事件是在未来,则会出现不同的情况),这就成了一个问题,我想添加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')
但我不知道如何把这些点连起来。
我怎样才能做到这一点?