2016-08-14 1 views
0

Итак, я пытаюсь потратить время, которое Trello использует в даты их оплаты и сравнивает его с временем Unix, поскольку мне легче справиться, когда у меня есть две метки времени Unix. Однако я не уверен, как его преобразовать.Как бы преобразовать временную метку, которую Trello использует в timestamp unix?

Trello временные метки выглядеть следующим образом:

2016-08-13T17:27:06.886Z 

Первые цифры даты, а после T является время. Z утверждает, что это «Zulu time», что совпадает с UTC.

Так что я хочу это сделать, и преобразовать его в временную метку Unix с помощью Lua.

+0

Это не временная метка, это версия времени JSON. –

ответ

2

Nevermind, я узнал, как это сделать, если подойти ближе к функции os.time().

local function formatTime(s) 
    local y = tonumber(string.sub(s, 1, 4)) 
    local m = tonumber(string.sub(s, 6, 7)) 
    local d = tonumber(string.sub(s, 9, 10)) 
    local h = tonumber(string.sub(s, 12, 13)) 
    local mi = tonumber(string.sub(s, 15, 16)) 
    local s = tonumber(string.sub(s, 18, 19)) 

    local tbl = { 
     year = y, 
     month = m, 
     day = d, 
     hour = h, 
     minute = mi, 
     second = s, 
     isdst = (m>=3 and m<=10) --this is roughly close to DST, not perfect. 
    } 

    return os.time(tbl) 
end 

Пользуясь тем, что, если я позвоню следующее:

formatTime("2016-08-13T17:27:06.886Z") 

она возвращает метку времени Unix, соответствующее это время. Надеюсь, это поможет любому, у кого есть такая же проблема.

-1

Если вы хотите преобразовать время в веб-приложение или приложение js узла, вы можете легко использовать Moment.Js. http://momentjs.com

+0

Moment выглядит как отличный инструмент для веб-приложений, однако я пытаюсь использовать Lua. В любом случае, спасибо. – BreadyToCrumble

Смежные вопросы