关于datetime:Lua-获取特定时区的时间和日期

Lua - get time and date of specific time zone

我想要Lua中特定时区的时间和日期,其格式设置为os.date("%a %b %d, %H:%M")将返回它。

我知道os.date("!%a %b %d, %H:%M")(添加了感叹号"!")为我提供了UTC时间,但是我如何从那里移动并抵消请求的时间呢?

在我的情况下,所需的时区为UTC + 08:00。


os.date接受两个参数:

os.date ( [format [, time]] )

time参数(以秒为单位)可用于偏移返回的值。

由于os.time()以秒为单位返回当前时间,因此您可以简单地将偏移量(8)加一分钟(60)乘以秒,再乘一秒(60)乘以分钟。

1
os.date("!%a %b %d, %H:%M", os.time() + 8 * 60 * 60 )

如果您处于UTC + 01:00,则将收到以下输出:

1
2
3
4
5
6
> os.date("%a %b %d, %H:%M")
Wed Mar 16, 09:33
> os.date("!%a %b %d, %H:%M")
Wed Mar 16, 08:33
> os.date("!%a %b %d, %H:%M", os.time() + 8 * 60 * 60 )
Wed Mar 16, 16:33

如果您的偏移量不是完整小时数,则必须使用十进制数。
例如:UTC + 07:30在等式中为7.5