【问题标题】:Moment returns wrong datetime时刻返回错误的日期时间
【发布时间】:2019-06-18 14:25:24
【问题描述】:

我使用 React 作为前端框架,python 作为后端语言。

Python 将 UTC 日期时间返回给 React。不知何故,react+moment 显示错误的本地日期时间(柏林时区)。我可以知道,如何解决这个问题?

情况 1 是正确的但情况 2 是错误的

案例 1:

Python 返回 React: "2019-10-02T22:00:00Z"

React+Moment 返回: 2019 年 10 月 3 日星期四 00:00:00 GMT+0200(中欧夏令时间){}

moment('2019-10-02T22:00:00Z').toDate()

Thu Oct 03 2019 00:00:00 GMT+0200 (Central European Summer Time)

案例 2:

Python 返回 React: "2019-10-30T22:00:00Z"

React+Moment 返回: 2019 年 10 月 30 日星期三 23:00:00 GMT+0100(中欧标准时间){}

 moment('2019-10-30T22:00:00Z').toDate()

 Wed Oct 30 2019 23:00:00 GMT+0100 (Central European Standard Time)

【问题讨论】:

  • 夏令时结束于 10 月 27 日,所以看起来是正确的。
  • @Dyo 哎呀..你是对的。 May In 知道,如何处理这种情况?我的意思是,显示正确的日期时间
  • “正确的日期时间”取决于您的应用程序的需求,您是想处理本地日期时间还是只使用 utc ?
  • @Dyo 我想处理本地日期时间,因为多个用户在不同位置访问相同的逻辑
  • 您的时间在 UTC 中仍然是一样的,只要确保始终以本地格式将其打印给最终用户。

标签: reactjs momentjs


【解决方案1】:

Python 使用 utc 而 moment.js 使用 +1 或其他任何值(您的本地时间)的额外偏移量。如果您希望 moment.js 也使用 utc,请执行以下操作:

const m = moment.utc('2019-10-30T22:00:00Z')
console.log(m.toDate())

【讨论】:

  • 谢谢......当不同位置的多个用户尝试访问相同的逻辑时,显式 UTC 是否会返回任何问题
  • 没问题,他们都会得到utc的时间版本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-20
  • 1970-01-01
  • 1970-01-01
  • 2011-09-26
  • 2014-08-05
  • 2020-11-02
  • 2018-05-12
相关资源
最近更新 更多