1

根据当前日期,我怎么知道 Lua 的时间是否是夏令时。

例如,法国的值实际上是 true (当前使用 CEST)。在冬天,这将是错误的。
忘了这太具体了:我只是期待法国的规则。但在这一点上,我不知道 Lua 是否有原生函数。

可用的内置函数列表在这里

4

3 回答 3

6

返回的表os.date("*t", someday)有一个字段isdst表示它是否是夏令时。

local someday = os.time{year=2013, month=6, day=20}
local t = os.date("*t", someday)
print(t.isdst)

获取当前时间更容易,os.time不带参数调用将返回当前日期和时间。

local now = os.time()
local t = os.date("*t", now)
print(t.isdst)
于 2013-09-26T02:45:35.957 回答
2

os.date("%Z")"CEST"如果您的系统使用的是法国现在使用的中欧夏令时,则返回。在夏季时间之外,它会返回"CET"

于 2013-09-26T01:59:48.337 回答
0

除了其他两个正确的答案(@lhf 和@Yu Hao)之外,请注意正确处理时间是复杂的。如果我是你,我会考虑为它使用一个库,比如Penlight。请注意,即使 Penlight也不 完美,但至少人们正在使用它,因此问题最终会得到解决。

于 2013-09-26T09:29:31.657 回答