代码来自此页面:
https://github.com/reddit/reddit/blob/master/r2/r2/lib/db/_sorts.pyx
这是代码片段:
cpdef double epoch_seconds(date):
"""Returns the number of seconds from the epoch to date. Should
match the number returned by the equivalent function in
postgres."""
td = date - epoch
return td.days * 86400 + td.seconds + (float(td.microseconds) / 1000000)
我认为td.days * 86400应该等于td.seconds以及(float(td.microseconds)/ 1000000),我想知道他们为什么不简单地使td.seconds乘以3?
解决方法:
你的假设是错误的,这就是为什么这种接缝很奇怪. td.days包含正确假设的纪元以来的天数,但td.seconds和td.microseconds分别包含自当天开始以来的秒数和自秒开始以来的微秒数.因此,返回值变为自纪元以来的秒数,微秒为逗号后的部分.