【问题标题】:Moment.js, how to just change a format of a date without changing timezone?Moment.js,如何在不更改时区的情况下更改日期格式?
【发布时间】:2013-09-10 12:28:53
【问题描述】:
我想更改日期和时间字符串的格式。但是 moment.js 将时区更改为我的系统时区(+3):
// This is a string:
"2013-09-20 23:59:59 +0100"
// I want to change it to this:
"20-09-2013 23:59:59 +0100"
// This is what I do and what I get. 1 hour is added by force:
moment("2013-09-20 23:59:59 +0100").format("DD-MM-YYYY HH:mm:ss ZZ")
"21-09-2013 01:59:59 +0300"
如何只更改格式而不更改时区?
【问题讨论】:
标签:
javascript
datetime
momentjs
【解决方案1】:
在 moment.js v-2.8.3 中:
var dateTime = "2014-12-09 13:59:59 +0930";
var parseDateTimeZone = moment.parseZone(dateTime).format("YYYY-MM-DDTHH:mm:ssZ");
Doc-API
【解决方案2】:
请直接查看moment issue #887。在未来的版本中可能会更容易,但目前的解决方法如下:
var input = "2013-09-20 23:59:59 +0100";
var m = moment(input).zone(input);
m.format("DD-MM-YYYY HH:mm:ss ZZ")