在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Linux  網(wǎng)絡(luò)安全/ lua將時(shí)間字符串轉(zhuǎn)換成時(shí)間戳的精度和linux里面的date命令得到的結(jié)果不一

lua將時(shí)間字符串轉(zhuǎn)換成時(shí)間戳的精度和linux里面的date命令得到的結(jié)果不一致?

1. 我的需求

通過(guò)lua將某個(gè)時(shí)間字符串轉(zhuǎn)換成時(shí)間戳,但實(shí)際驗(yàn)證后發(fā)現(xiàn)精度是個(gè)問(wèn)題,得到結(jié)果的并不是正確的時(shí)間戳。

2. 我的代碼如下

function unixtimestamp(datestr)
    -- StrSplit函數(shù)類似python里面的split
    local datelist = StrSplit(datestr, " ");
    local datebegin = StrSplit(datelist[1], "-");
    local dateend = StrSplit(datelist[2], ":");
    local day = datebegin[3];
    local month = datebegin[2];
    local year = datebegin[1];
    local hour = dateend[1];
    local minute = dateend[2];
    local second = dateend[3];
    
    print("use shell date command: ");
    os.execute("date +%s -d " .. "\"" .. datestr .. "\"");

    print("use lua os.time() command: ");
    print(os.time({day = day, month = month, year = year, hour = hour, minute = minute, second = second}));
end

unixtimestamp("2017-12-20 22:47:57");
print("\n");
unixtimestamp("2017-12-20 22:12:57");
print("\n");
unixtimestamp("2017-12-20 20:13:57");

3. 以下是我運(yùn)行之后的結(jié)果

12778104.jpg

回答
編輯回答
溫衫

原來(lái)是自己粗心沒(méi)認(rèn)真看lua手冊(cè),上述代碼這一行

print(os.time({day = day, month = month, year = year, hour = hour, minute = minute, second = second}));

應(yīng)該改成

print(os.time({day = day, month = month, year = year, hour = hour, min = minute, sec = second}));

由于我的錯(cuò)誤代碼里面寫成了minutesecond,所以造成os.time()在格式化時(shí)間時(shí)將該兩個(gè)字段丟棄了,才導(dǎo)致的精度不一致問(wèn)題。自己粗心了:P
lua手冊(cè)里面關(guān)于os.time()的函數(shù)有格式說(shuō)明:
64452924.jpg

2018年1月28日 09:20