我收到Date来自不同的 3 种格式APIs
UTC格式2014-01-01T00:00:00.000Z:(String)GMT格式Thu, 29 Nov 2018 17:30:56 GMT:(String)unixTimeStamp:1558606726(number)
此外,UTC格式有时可能Z最终没有,因此正常解析会产生时间差异。
function formatDate(dateString) {
var dateTime, utcFormatRegex, zeroHourOffsetRegex;
// Some APIs return a Date in standard ISO UTC format may not have Z at the end
utcFormatRegex = /^\d{4}-\d{2}-\d{2}T.*$/;
zeroHourOffsetRegex = /^.*Z$/;
if (utcFormatRegex.test(dateString) && !zeroHourOffsetRegex.test(dateString)) {
dateString+='Z';
}
dateTime = new Date(dateString);
}
鉴于所有不同格式都有解析函数,我需要一个函数来确定我们应该根据 a 使用哪个解析函数,regex并parse相应地使用它。如果正则表达式不是理想的解决方案,那么我该如何解决?
我要说的是,可能应该有一个比“如果没有 Z 则添加一个”更强大的解决方案来让它通过单个日期时间解析器进行解析。如果我们得到另一种日期时间格式,它不能很好地与最后的 Z 配合使用怎么办?我们将在那个时间点进行多项更改。