Lua時間轉換

2021-07-03 07:20:13 字數 2798 閱讀 5475

1、用數值表示時間值

用數字值來表示時間值,

實際上時間值的本質就是乙個數字值。

例如:d = 1131286477

這裡的 1131286477 是乙個以秒為單位的 格林威志時間(gmt),注意不同時區的時差

2、用字串表示時間

用字串來來表示時間。

例如:d = "2005-11-06 22:18:30" --2023年11月6日 22點18分30秒

d = "11/06/2005 22:18:30" --即2023年11月6日 22點18分30秒

3、時間的列**式

用table物件來表示時間

例如:d =

--同樣表示2023年11月6日 22點18分30秒,其中isdst=false表示不使用夏令時

我們可以這樣訪問時間列表 d.year = 2005;

time = os.time()

返回乙個標準的number(數值)格式的時間值,這也是最原始的時間值

os.time()返回的時間是以秒為單位的。

1、獲取當前時間數值

time = os.time();

--如果沒有指定任何引數,則返回當前時間

2、通過table引數指定時間,獲取指定的時間數值

time = os.time(tab);

通過乙個table引數,指定乙個時間,返回時間的數值格式.

例如:local tab =

--year表示年,month表示月,day表示日期,hour表示小時,min表示分鐘,sec表示秒,isdst表示是否夏令時

time = os.time(tab)

-->返回值為1131286710

tab = os.date("*t",time)

可以將乙個數值格式的時間轉換為字串或者列表

其中第乙個引數指定返回的格式,如果第乙個引數指定為"*t" 則返回乙個table格式的時間。

第二個引數指定乙個時間數值(以秒為單位)

1、獲取當前時間的table格式

tab = os.date("*t")

如果不指定os.date的第二個引數,則返回當前時間的table表示格式

2、通過時間數值,獲取指定時間的table格式

tab = os.date("*t", time)

通過os.date函式的第二個引數指定乙個時間數值。

例如:local tab = os.date("*t", 1131286710);

--返回值 tab 的資料

--year表示年,month表示月,day表示日期,hour表示小時,min表示分鐘,sec表示秒,isdst表示是否夏令時

--tab成包括一些其他的成員 tab.yday 表示一年中的第幾天 tab.wday 表示星期幾(星期天為1)

time = os.time(tab)

-->返回值為1131286710

tab = os.date(format,time)

實際上與取得table格式的時間一樣,同樣是使用os.date引數,不同的是第乙個引數

如果第乙個引數不是"*t" os.date返回字串

關於format引數使用的格式化語法,請參考:string.ftime格式化語法

os.date 的用法與 string.ftime 完全相同

例如:win.consoleopen()

print(  os.date("today is %a, in %b")  )

print(  os.date("%x", 906000490)  )

--輸出類似這樣的字串 09/16/1998

1、獲取當前時間的字串(string)格式

如果不指定os.date的第二個引數,則返回當前時間的table表示格式

例如:str= os.date("*x")

2、通過時間數值,獲取指定時間的(string)格式

通過os.date函式的第二個引數指定乙個時間數值。

例如:str= os.date("*x",1131286710)

3、獲取時間的指定部份的(string)格式

例如:str = os.date("%m") --返回當前時間分鐘部份的字串格式

請參考:string.time string.ftime 函式用法

int = os.difftime(t2,t1);

t2,t1都是數值格式的時間值,返回值也是乙個數值表示間隔的時間。

引數以及返回的時間值都是以秒為單位的數值格式。

local tab =

t1 = os.time(tab)

tab.day = tab.day +1;--前進一天

t2 = os.time(tab)

int = os.difftime(t2,t1);

win.messagebox(int.."秒","時間差"

int = os.tick();

讀取系統時鐘,以毫秒為單位。表示從系統啟動到當前時刻所過去的毫秒數。

int = os.clock()

讀取系統時鐘,以秒為單位。表示從系統啟動到當前時刻所過去的秒數。

注意

因為內部實現的差異,os.tick 與 os.clock()的返回值並不完全一致。

Lua時間戳和日期轉換

os.date y m d h unixtime os.date y m d h 1534435200 2018081700 指定日期的時間戳 os.time 1534435200os.time 時間格式 yyyymmddhhmmss print os.date y m d h m s os.tim...

lua 差值 日期 lua時間戳和日期轉換及踩坑

介紹lua的日期函式常用方法及我的乙個踩坑。時間戳轉日期 os.date y m d h unixtime os.date y m d h 1534435200 2018081700 日期轉時間戳 指定日期的時間戳 os.time 1534435200 當前時間戳 os.time 格式佔位符 時間格...

lua 時間控制

os.time 返回當前系統的日曆時間 os.date 返回本地化的時間字串,這裡是 11 28 08 17 23 37 os.date x os.time 返回自定義格式化時間字串 完整的格式化引數 這裡是 11 28 08 os.clock 返回執行該程式cpu花去的時鐘秒數,這裡是1156.7...