【问题标题】:Parse timezone name with moment.js使用 moment.js 解析时区名称
【发布时间】:2020-09-02 07:32:32
【问题描述】:

我想通过 moment.js 解析日期(这通常很容易),但我的日期包含时区的缩写,符号 zz 在这里不起作用。 (moment.js format)

const str1 = "2020-08-28 13:15 CST";
const date1 = moment(str1, "YYYY-MM-DD HH:mm zz");
console.log(date1);
<script src="https://momentjs.com/downloads/moment.min.js"></script>
<script src="https://momentjs.com/downloads/moment-with-locales.min.js"></script>
<script src="https://momentjs.com/downloads/moment-timezone-with-data.js"></script>

由于我目前处于 UTC+2 时区,它显示 2020-08-28T11:15:00.000Z 对应于 2020-08-28 13:15:00 UTC+2。

它如何识别时区缩写?

【问题讨论】:

  • 最终输出会是什么样子?
  • @AlwaysHelping 我只是想得到一个正确的日期对象,日期应该是2020-08-28 18:15:00 UTC 时间。
  • str 是否始终与上面的 CST 相同?
  • @AlwaysHelping 是的,所以唯一的方法是手动解析它并通过moment.tz(...)识别时区?
  • 不是真的你不需要担心时区,因为你总是将它转换为 UTC 格式?正确

标签: javascript momentjs moment-timezone


【解决方案1】:

这样使用

moment.utc('2020-08-28 13:15 CST').format('YYYY-MM-DD HH:mm ZZ')

【讨论】:

  • 这不像我说的那样工作。时刻忽略CST 并选择用户的当前时区(对我来说是UTC+2)。
  • 这显示13:15 UTC时间,这是不正确的。
猜你喜欢
  • 2017-05-23
  • 1970-01-01
  • 1970-01-01
  • 2018-01-31
  • 2019-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多