时刻js自定义日期格式转换出错

时间:2017-09-28 10:12:31

标签: javascript momentjs

在我的angular 4应用程序中,我收到的格式如下: "26-SEP-17 09.20.44.123000 AM",我需要将其转换为"Sep 26, 2017 9:20:44 AM"。所以我使用了 momentjs ,代码如下所示:



var convertedDate = moment("26-SEP-17 09.20.44.123000 AM", 'DD-MMM-YY HH.mm.ss.SSS a').format('MMM d, YYYY h:mm:ss A');

console.log(convertedDate)

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.3/moment.js"></script>
&#13;
&#13;
&#13;

但我将convertDate改为"Sep 2, 2017 9:20:44 AM"。我无法理解为什么我将日期改为Sep 2, 2017而不是Sep 26, 2017,即使小时,分钟和秒正确到来。

2 个答案:

答案 0 :(得分:1)

使用正确的格式DD代替d

&#13;
&#13;
var convertedDate = moment("26-SEP-17 09.20.44.123000 AM", 'DD-MMM-YY HH.mm.ss.SSS a').format('MMM DD, YYYY h:mm:ss A');
console.log(convertedDate)
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.3/moment.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

而不是format('MMM d, YYYY h:mm:ss A')

将其format('MMM DD, YYYY h:mm:ss A') //notice the 'd' become 'DD'

您的新代码必须是:

convertedDate = moment("26-SEP-17 09.20.44.123000 AM", 'DD-MMM-YY HH.mm.ss.SSS a').format('MMM DD, YYYY h:mm:ss A');