2015-01-09 115 views
2

我不知道任何ASP.NET,我需要在Lua中可以轉換日期的函數。解析ASP.Net JSON日期格式爲Lua?

例日期:"\/Date(1397304050320)\/" - >4/12/2014

是下面平移到Lua功能? 如果你不知道Lua,你可以嘗試爲我翻譯匹配模式嗎?

我已經發現這個功能:

function FixJsonDates(data) { 
    //microsoft script service perform the following to fix the dates. 
    //json date:\/Date(1317307437667-0400)\/" 
    //javasccript format required: new Date(1317307437667-0400) 

    //copied from micrsoft generated fiel. 
    var _dateRegEx = new RegExp('(^|[^\\\\])\\"\\\\/Date\\((-?[0-9]+)(?:[a-zA-Z]|(?:\\+|-)[0-9]{4})?\\)\\\\/\\"', 'g'); 
    var exp = data.replace(_dateRegEx, "$1new Date($2)"); 
    return eval(exp); 
} 

回答

1

從字符串中提取日期,並轉換爲日期,儘量

local s = "some text/Date(1397304050320)/more text" 
local t = s:match("/Date%((%d+)%)/") 
print(os.date("%D",t/1000)) 

在Lua中,os.date需要的時間以秒。顯然你擁有的數字是毫秒。

+0

@kikito,如果您使用'local',則不能將其複製並粘貼到交互式會話中。 – lhf

+0

但他想重新實現一個函數,而不是在交互式會話中使用代碼。 – kikito