首页 > 解决方案 > 将“Thu Sep 19 14:24:59 UTC 2019”转换为时刻日期

问题描述

我尝试转换此日期:

created_at= "Thu Sep 19 14:24:59 UTC 2019"

使用这个:

let elementDate=moment(created_at)

但我得到:

moment.invalid(/* Fri Aug 30 09:52:04 UTC 2019 */)

我也试过这个:

moment(created_at,"DDD Mo DD hh:mm:ss UTC YYYY") 

但似乎不正确。有什么想法吗?

标签: javascriptdatetimetimezonemomentjs

解决方案


来自Moment.js 文档

除非您指定时区偏移量,否则解析字符串将在当前时区创建日期。

如果您需要解析的日期字符串都是 UTC,那么您可以简单地使用moment.utc()和修复您的星期几和月份格式标记。否则,您将不得不对您的字符串进行一些额外的预处理,因为它无法解析时区缩写。

const dt = moment.utc('Thu Sep 19 14:24:59 UTC 2019', 'ddd MMM D HH:mm:ss [UTC] YYYY');
console.log(dt.format());
// 2019-09-19T14:24:59Z
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>


推荐阅读