Javascript 为什么不正确地转换此日期?
我有一个来自dynamodb的GMT日期和时间格式,我正试图使用momentjs将其转换为EST格式Javascript 为什么不正确地转换此日期?,javascript,amazon-dynamodb,momentjs,Javascript,Amazon Dynamodb,Momentjs,我有一个来自dynamodb的GMT日期和时间格式,我正试图使用momentjs将其转换为EST格式 2019-06-27 20:00:43.156257 一旦我把日期放到“时刻”中,它就会将其转换为+4小时(而它应该是-4小时) 我所做的就是这样 const dbdate = [value-from-db] const momentdate = moment(dbdate); 我的输出如下所示: 数据库日期:2019-06-27 20:00:43.156257 时间:2019-06-28:
2019-06-27 20:00:43.156257
一旦我把日期放到“时刻”中,它就会将其转换为+4小时(而它应该是-4小时)
我所做的就是这样
const dbdate = [value-from-db]
const momentdate = moment(dbdate);
我的输出如下所示:
数据库日期:2019-06-27 20:00:43.156257时间:2019-06-28:00:43.156Z
您必须使用
moment.utc()
而不是moment()
:
constdbdate='2019-06-27 20:00:43.156257';
const momentdate=力矩(dbdate);
const utcmomentdate=时刻utc(数据日期);
console.log('local:\n',momentdate);
console.log('utc:\n',utcmomentdate)代码>
您必须使用矩.utc()
而不是矩()
:
constdbdate='2019-06-27 20:00:43.156257';
const momentdate=力矩(dbdate);
const utcmomentdate=时刻utc(数据日期);
console.log('local:\n',momentdate);
console.log('utc:\n',utcmomentdate)代码>
这里有两个问题:
1) 矩正在使用本地时区执行时区转换-请改用矩.utc
2) 您的日期格式不是“官方”支持的格式,尽管实际上它已经足够轻松,可以解析您的字符串。理想情况下,它应该以适当的ISO 8601格式提供,以避免任何兼容性问题
您可以尝试以下方法:
const dbdate = '2019-06-27 20:00:43.156257'.split(' ');
const momentdate = moment.utc(dbdate[0] + 'T' + dbdate[1] + 'Z');
alert(momentdate);
这是一个例子
希望这有帮助 这里有两个问题:
1) 矩正在使用本地时区执行时区转换-请改用矩.utc
2) 您的日期格式不是“官方”支持的格式,尽管实际上它已经足够轻松,可以解析您的字符串。理想情况下,它应该以适当的ISO 8601格式提供,以避免任何兼容性问题
您可以尝试以下方法:
const dbdate = '2019-06-27 20:00:43.156257'.split(' ');
const momentdate = moment.utc(dbdate[0] + 'T' + dbdate[1] + 'Z');
alert(momentdate);
这是一个例子
希望这有帮助 “请阅读:时刻(…)为本地模式。不明确的输入(无偏移量)假定为本地时间。明确的输入(有偏移量)调整为本地时间。”请阅读:时刻(…)为本地模式。不明确的输入(无偏移量)假定为本地时间。明确的输入(有偏移量)调整为本地时间。”