//parse xxx in "new Date(xxx)" of javascript to C# DateTime //input example: //new Date(1329198041411.84) / new Date(1329440307389.9) / new Date(1329440307483) public bool parseJsNewDate(string newDateStr, out DateTime parsedDatetime) { bool parseOK = false; parsedDatetime = new DateTime(); if ((newDateStr != "") && (newDateStr.Trim() != "")) { string dateValue = ""; if (extractSingleStr(@".*new\sDate\((.+?)\).*", newDateStr, out dateValue)) { double doubleVal = 0.0; if (Double.TryParse(dateValue, out doubleVal)) { // try whether is double/int64 milliSecSinceEpoch parsedDatetime = milliSecToDateTime(doubleVal); parseOK = true; } else if (DateTime.TryParse(dateValue, out parsedDatetime)) { // try normal DateTime string //refer: http://www.w3schools.com/js/js_obj_date.asp //October 13, 1975 11:13:00 //79,5,24 / 79,5,24,11,33,0 //1329198041411.3344 / 1329198041411.84 / 1329198041411 parseOK = true; } } } return parseOK; }
例 4.4. parseJsNewDate 的使用范例
DateTime expireTime; if (parseJsNewDate(expire, out expireTime)) { parsedCk.Expires = expireTime; }