Lambda时刻UTC时间设置的小时和分钟

时间:2018-09-26 23:27:06

标签: javascript aws-lambda momentjs

当我在us-east-1托管的AWS Lambda中运行以下命令时

const currentTime = moment().utc().valueOf();
console.log(new Date( currentTime ));//1538003255995
Prints: Wed Sep 26 2018 19:07:35 GMT-0400 (Eastern Daylight Time) --- Correct in terms of current time.

const currentExecution = moment().set({
  hour: 19,
  minute: 24,
  second: 0
}).utc().valueOf();
console.log(new Date( currentTime ));//1537989840995
Prints:Wed Sep 26 2018 15:24:00 GMT-0400 (Eastern Daylight Time)

为什么显示15:24而不是19:24? 但是当我在位于EST的本地计算机上运行此代码时,它会打印 Wed Sep 26 2018 19:24:00 GMT-0400 (Eastern Daylight Time)

为什么仅在lambda中运行时会有4个小时的差异?

1 个答案:

答案 0 :(得分:1)

因为new Date采用当地时间,所以它返回您在UTC的19:07时所在的时间,即15:07 。与AWS有所不同,因为它们可能不使用时区偏移,所以服务器的行为就像是在UTC中

您可能要使用Date.UTC ... goto