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

qub*_*dup 1 timezone lua datetime date timezone-offset

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

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

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

qub*_*dup 7

os.date接受两个参数:

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

time参数-以秒-可用于抵消返回值。

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

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

如果您处于 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
Run Code Online (Sandbox Code Playgroud)

如果您的偏移量不是整小时,您当然必须使用十进制数。例如:UTC+07:307.5在等式中。

  • 夏令时呢? (8认同)