问题描述
我正在尝试打印多个以其自己的时区偏移量存储的日期。
使用momentjs,我曾经做过以下事情
const date1 = "2013-01-01T00:00:00-05:00";
const date2 = "2013-01-01T00:00:00-13:00";
console.log(moment.parseZone(date1).format());
console.log(moment.parseZone(date2).format());
// 2013-01-01T00:00:00-05:00
// 2013-01-01T00:00:00-13:00
会同时打印两个日期及其偏移量(-05:00
和-13:00
)。
我想对luxon js做同样的事情
const date1 = "2013-01-01T00:00:00-05:00";
const date2 = "2013-01-01T00:00:00-13:00";
console.log(luxon.DateTime.fromISO(date1).toISO());
console.log(luxon.DateTime.fromISO(date2).toISO());
// 2013-01-01T02:00:00.000-03:00
// 2013-01-01T10:00:00.000-03:00
但是似乎没有保持偏移量,而是将它们转换为-03:00
。
如何保持相同的抵销额?
解决方法
找到答案了。我需要激活setZone
选项。
因此,解决方案如下:
const date1 = "2013-01-01T00:00:00-05:00";
const date2 = "2013-01-01T00:00:00-13:00";
console.log(luxon.DateTime.fromISO(date1,{ setZone: true }).toISO());
console.log(luxon.DateTime.fromISO(date2,{ setZone: true }).toISO());
// 2013-01-01T00:00:00.000-05:00
// 2013-01-01T00:00:00.000-13:00
检查文档here。