os.time()根本使用的是isdst字段吗?

时间:2016-03-29 06:21:34

标签: datetime lua dst datetimeoffset

os.date("*t")的输出中包含isdst字段,您可以在os.time的输入中指定它。也许我是愚蠢的,但我根本无法看到它被os.time使用:

> print(os.time{year=2016, month=3, day=29, hour=9,min=10,sec=10,isdst=1})
1459235410
> print(os.time{year=2016, month=3, day=29, hour=9,min=10,sec=10,isdst=0})
1459235410
> print(os.time{year=2016, month=6, day=29, hour=9,min=10,sec=10,isdst=0})
1467184210
> print(os.time{year=2016, month=6, day=29, hour=9,min=10,sec=10,isdst=1})
1467184210

无论您的isdst规范如何,您似乎都获得了相同的Epoch时间表示。那么,忽略这个领域是否安全?

1 个答案:

答案 0 :(得分:3)

isdst字段是布尔值,而不是数字。请注意,任何非falsenil的内容都被视为真实,包括0

要将isdst设为false,请尝试

print(os.time{year=2016, month=6, day=29, hour=9, min=10, sec=10, isdst=false})

isdst字段的默认值为nil,因此也适用:

print(os.time{year=2016, month=6, day=29, hour=9, min=10, sec=10})