Javascript 为什么不正确地转换此日期?

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:

我有一个来自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: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);
这是一个例子

希望这有帮助

“请阅读:时刻(…)为本地模式。不明确的输入(无偏移量)假定为本地时间。明确的输入(有偏移量)调整为本地时间。”请阅读:时刻(…)为本地模式。不明确的输入(无偏移量)假定为本地时间。明确的输入(有偏移量)调整为本地时间。”