2016-03-16 74 views
1

我希望Lua中某個特定時區的時間和日期格式化,os.date("%a %b %d, %H:%M")會將其返回。Lua - 獲取特定時區的時間和日期

我知道os.date("!%a %b %d, %H:%M")(添加感嘆號「!」)給了我UTC時間,但我該如何從那裏移動並抵消所需的時間?

在我的情況下,所需的時區是UTC + 08:00

+1

有關完整的庫,請參閱https://github.com/daurnimator/luatz。 – lhf

回答

3

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

+0

夏時制呢? –

相關問題