代码
const getISO8601DateTime = (dateTime) => {
return Moment(dateTime).utcOffset('+0900').format('YYYY-MM-DDTHH:mm:ss+09:00')
}
module.exports.getISO8601DateTime = getISO8601DateTime
测试结果
// 1 原本就是带时区的字符串,调用方法后原值返回,不会影响
let dateTime_1 = Moment("2020-12-12T12:12:12+09:00").utcOffset('+0900').format('YYYY-MM-DDTHH:mm:ss.SSS+09:00')
console.log(1,dateTime_1)
// 2 系统时间 (结果为:世界时间 +9小时)
let dateTime_2 = Moment(new Date()).utcOffset('+0900').format('YYYY-MM-DDTHH:mm:ss.SSS+09:00')
console.log(2,dateTime_2)
// 3 时间戳(结果为:世界时间 +9小时)
let dateTime_3 = Moment(1611118876618).utcOffset('+0900').format('YYYY-MM-DDTHH:mm:ss.SSS+09:00')
console.log(3,dateTime_3)
// 4 时间格式的字符串(传入参数被当作当地时间,然后处理为世界时间 +9小时,比如当地北京时间为12点,+9后变为13点)
let dateTime_4 = Moment("2020-12-12 12:12:12").utcOffset('+0900').format('YYYY-MM-DDTHH:mm:ss.SSS+09:00')
console.log(4,dateTime_4)
// 5 时间格式的字符串(结果同4)
let dateTime_5 = Moment("2020-12-12T12:12:12").utcOffset('+0900').format('YYYY-MM-DDTHH:mm:ss.SSS+09:00')
console.log(5,dateTime_5)
// 6 时间格式的字符串(结果同4)
let dateTime_6 = Moment("2020-12-12").utcOffset('+0900').format('YYYY-MM-DDTHH:mm:ss.SSS+09:00')
console.log(6,dateTime_6)
// 7 时间格式的字符串(传入参数被当作世界时间,结果为:+9小时)
let dateTime_7 = Moment("2020-12-12T12:12:12.888Z").utcOffset('+0900').format('YYYY-MM-DDTHH:mm:ss.SSS+09:00')
console.log(7,dateTime_7)
1 2020-12-12T12:12:00+09:00
2 2021-01-20T14:06:32+09:00
3 2021-01-20T14:01:61+09:00
4 2020-12-12T13:12:00+09:00
5 2020-12-12T13:12:00+09:00
6 2020-12-12T01:00:00+09:00
7 2020-12-12T21:12:88+09:00