momentjs toDate() - 时区被重置

时间:2015-03-18 20:33:27

标签: javascript momentjs

我正在使用momentjs并使用convertedDate = moment().utcOffset(timezone).format()将日期转换为不同的时区。这很好但是它是一个字符串,我需要将它转换为日期对象。

我已尝试new Date(convertedDate)moment().utcOffset(timezone).toDate(),但会将当前时区作为日期对象返回。如何保留转换后的时区?

3 个答案:

答案 0 :(得分:9)

所以我不是很远。格式需要排除时区才能工作。这段代码终于解决了我需要它的方式。

convertedDate = new Date(moment().utcOffset('-4').format('YYYY-MM-DD HH:mm'));

答案 1 :(得分:2)

一种更干净的方法是使用 30 #Plotting 31 plt.scatter(iris.data[:,1],iris.data[:,2],c=iris.target,cmap=plt.cm.paired) 32 plt.xlabel(iris.feature_names[1]) 33 plt.ylabel(iris.feature_names[2]) 按照时区获取带有时间的本地Date对象:

moment

PS:假设两件事

  • 您已经导入了convertedDate = moment.utc(moment.tz(timezone).format('YYYY-MM-DDTHH:mm:ss')).toDate() 'moment'
  • 'moment-timezone'一样给出timezone
  • 值,而不是偏移值

答案 2 :(得分:0)

这应该有效:

我有同样的问题。只需使用与您相同的方法将Date作为字符串获取即可。假设您的日期为:“ 2018-08-05T10:00:00”。

现在,您需要具有正确时间的Date对象。要将String转换为对象而不会弄乱时区,请使用getTimezoneOffset

var date = new Date('2016-08-25T00:00:00')
var userTimezoneOffset = date.getTimezoneOffset() * 60000;
new Date(date.getTime() - userTimezoneOffset);

getTimezoneOffset()将返回负值或正值。必须减去它才能在世界上的每个位置工作。