3

代码来自此页面: 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?

4

2 回答 2

7

你的假设是错误的,这就是为什么这看起来很奇怪。td.days包含自您正确假设的纪元以来的天数,但td.seconds分别td.microseconds包含自一天开始以来的秒数和自一秒开始以来的微秒数。因此,返回值变为自纪元以来的秒数,微秒作为逗号后的部分。

于 2012-12-31T14:40:13.000 回答
2

td.days是整数天数,截断一天的任何部分。同样,td.seconds是该“一天的小数部分”内的整数秒数,任何一秒的小数部分都会被截断。因此,您必须将组件拼凑在一起。

于 2012-12-31T14:39:46.183 回答