Time 为什么字段的默认值为“0”;小时“;在操作系统时间12?
Time 为什么字段的默认值为“0”;小时“;在操作系统时间12?,time,lua,Time,Lua,os.time的表参数有三个必填字段year、month和day,可能有hour(默认值为12)、min(默认值为0)、sec(默认值为0)和isdst(默认值为nil). hour字段似乎有点奇怪,为什么它会像其他字段一样默认为12,而不是0 我还注意到,它在中有记录,但没有,但一个小测试表明,它在两个版本中都是正确的 print((os.time{year=2014, month=5, day=13}) - (os.time{year=2014, month=5, day=13, hour
os.time
的表参数有三个必填字段year
、month
和day
,可能有hour
(默认值为12
)、min
(默认值为0
)、sec
(默认值为0
)和isdst
(默认值为nil
).
hour
字段似乎有点奇怪,为什么它会像其他字段一样默认为12
,而不是0
我还注意到,它在中有记录,但没有,但一个小测试表明,它在两个版本中都是正确的
print((os.time{year=2014, month=5, day=13}) - (os.time{year=2014, month=5, day=13, hour=0}))
输出:
43200
(12*60*60)找到Roberto Ierusalimschy的解释来自:
这是故意的。它甚至记录在PiL(第202页,第二版)中(尽管手册中没有)。我从未意识到“日期”有不同的默认值。(中午似乎比午夜更“在”给定的日期内…)
中午是一天中的默认时间。这很奇怪吗?@EgorSkriptunoff我想作者的想法和你一样,但对我来说,更自然的默认值是一天的开始,因此
0
。一旦你可以用索引1开始数组,你就可以从12:00开始一天了。)Lua基于零FOBIA)