3 回答
TA贡献1155条经验 获得超0个赞
如果偏移考虑夏令时,您应该能够执行以下操作:
const the_date = '2020-11-05T15:00:00.000';
const offset = 2;
const utc_time = moment.utc(the_date).subtract(offset, 'hours');
TA贡献1864条经验 获得超2个赞
目前尚不清楚您要尝试转换哪种方式。如果要将 UTC 转换为固定偏移量,则可以使用该utcOffset
函数,如下所示:
const m = moment.utc('2020-11-05T15:00:00.000Z').utcOffset('+02:00'); m.format(); //=> "2020-11-05T17:00:00+02:00"
或者 - 如果您尝试从+02:00 进行转换,那么您将在输入中包含该偏移量而不是Z
(Z 表示 UTC)。然后您只需调用该utc
函数,如下所示:
const m = moment('2020-11-05T15:00:00.000+02:00').utc(); m.format(); //=> "2020-11-05T13:00:00Z"
但是您应该注意偏移量与时区不同。一个时区可以有多个偏移量,其中一个偏移量将应用于给定时间点。这些偏移量可能会因夏令时和标准时间的变化而变化。因此,要求用户根据本地时间选择“时区偏移值”是有问题的 - 因为您可能将该偏移应用到错误的时间点。
您还应该了解Moment 的项目状态,并可能选择不同的库。
TA贡献1848条经验 获得超2个赞
因此如果有人正在寻找答案,他们将有另一个选择:
var moment = require('moment');
var time = "2020-11-05T15:00:00.000Z";
var timeoffset = "+02:00";
time = moment.utc(time).local().format('YYYY-MM-DDTHH:mm:SS.000');
time = moment(time, 'YYYY-MM-DDTHH:mm:ss.000').subtract(timeoffset).format('YYYY-MM-DDTHH:mm:ss.000') + 'Z';
添加回答
举报