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

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

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

在我的案例中,所需的时区是 UTC+08: 00

点赞
用户188159
用户188159

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

2016-03-16 08:36:26