从 Moment.js 中的 UTC 日期字符串创建本地日期

Create a local date from a UTC date string in Moment.js

给定一个 UTC 日期字符串(格式:YYYYMMDDHHmmss),我想使用 Moment.js 创建一个具有本地时区的日期。我尝试了以下方法:

var utcDateStr = '20140101120000';
var localDate = moment.utc(utcDateStr, 'YYYYMMDDHHmmss');

//actual: true
//desired: false
console.log(localDate._isUTC)

//actual: "Wed Jan 01 2014 12:00:00 GMT+0000"
//desired: "Wed Jan 01 2014 07:00:00 GMT-0500"
console.log(localDate.toString())

如何在调用 toString() 时创建一个默认为本地时区格式的日期?

使用.local()功能即可,1.5.0版本新增

var localDate = moment.utc(utcDateStr, 'YYYYMMDDHHmmss').local();
// UTC time
var utcDateStr = '20140101120000';

// First way
var offset = moment().utcOffset();
var localtime = moment.utc(utcDateStr,'YYYYMMDDHHmmss').utcOffset(offset);

// Another way
var anotherLocaltime= moment.utc(utcDateStr, 'YYYYMMDDHHmmss').local();

这两种方式都很好...参见JsFiddle