为什么字段的默认值为"小时"在os.time 12?

时间:2014-05-13 07:09:31

标签: time lua

os.time的表格参数有三个必填字段yearmonthday,可能包含字段hour(默认为12 }),min(默认为0),sec(默认为0)和isdst(默认为nil)。

hour字段似乎有点奇怪,为什么它会像其他字段一样默认为12而不是0

我还注意到它已在Lua 5.2 manual中记录,但未记录Lua 5.1 manual,但稍微测试表明在两个版本中都是如此。

print((os.time{year=2014, month=5, day=13}) - (os.time{year=2014, month=5, day=13, hour=0}))

输出:43200(12 * 60 * 60)

1 个答案:

答案 0 :(得分:2)

来自here的Roberto Ierusalimschy的解释:

  

这是故意的。它甚至记录在PiL中(第202页,第2版)(尽管不在手册中)。我从未意识到'date'有不同的默认值。 (中午似乎比给定日期更“内部”而不是午夜......)