Lua - 获取特定时区的时间和日期

时间:2016-03-16 08:36:26

标签: date datetime lua timezone timezone-offset

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

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

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

1 个答案:

答案 0 :(得分:4)

os.date接受两个参数:

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

time参数 - 以秒为单位 - 可用于抵消返回的值。

由于os.time()以秒为单位返回当前时间,因此您只需添加偏移量(8),乘以一分钟内的秒数(60),再乘以一秒钟内的分钟数(60)。

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

如果您在UTC + 01:00,这些是您将收到的输出类型:

> 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