如何将无效的日期字符串转换为Javascript日期

Ada*_*gen -1 javascript momentjs

我从REST API获取无效的日期字符串,但我可能无法修复REST API.如何格式化无效的日期字符串,如"20180517T010237"?

我试着用这个时刻,但我不能成功.

let date = moment("20180517T010237", "YYYY-MM-DD T HH.mm.ss").toDate();
Run Code Online (Sandbox Code Playgroud)

有没有简单的方法呢?

T.J*_*der 8

您传递的第二个字符串moment是您正在解析的字符串的格式.您的格式字符串包含-不在输入中的空格.删除它们:

let date = moment("20180517T010237", "YYYYMMDDTHHmmss").toDate();
Run Code Online (Sandbox Code Playgroud)

请注意,它将在当地时间解析.如果您想要UTC,请使用moment.utc:

let date = moment.utc("20180517T010237", "YYYYMMDDTHHmmss").toDate();
Run Code Online (Sandbox Code Playgroud)

例:

let date = moment("20180517T010237", "YYYYMMDDTHHmmss").toDate();
console.log(date);

date = moment.utc("20180517T010237", "YYYYMMDDTHHmmss").toDate();
console.log(date);
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js"></script>
Run Code Online (Sandbox Code Playgroud)