网站搜索

Apache 将日志时间戳转换为 Date 类型的 TypeScript


我从 Apache 日志中获得了这个时间戳 "18/May/2011:12:40:18 -0700",我想将其转换为日期类型。我想从时间戳中提取出日期中的天、月、年和时间。

当我尝试从之前显示的数据创建一个新的日期时,我收到 TS 编译器的 Invalid data 错误信息。我认为 -0700 是问题所在,所以我请求一个解决方案。

答案#1

问题出在日期和时间之间的冒号。你需要用空格替换它。

var timestamp = '18/May/2011:12:40:18 -0700';

var jsdate = new Date(timestamp.replace(':',' '));

答案#2

下面的代码显示了你遇到的问题。JavaScript 无法将该格式解析为日期。(-0700 是与 UTC 的时差)。

var dates = [];

dates.push(new Date("18/May/2011:12:40:18 -0700"));
dates.push(new Date("18/May/2011:12:40:18-0700"));
dates.push(new Date("2011-05-18:12:40:18-0700"));

dates.forEach(parsedDate => console.log(parsedDate.toString()))

您可能需要自己解析日期或使用一个库