【问题标题】:How to convert "2017-07-27T08:02:17+0200" to local date-time and zone using moment.js如何使用 moment.js 将“2017-07-27T08:02:17+0200”转换为本地日期时间和区域
【发布时间】:2018-01-07 05:32:54
【问题描述】:

如何使用 moment.js 将 "2017-07-27T08:02:17+0200" 转换为本地日期时间和区域?

这里08:02:17 是小时:分钟:秒,+0200 是时区。我的本地时区是GMT+6。我想将该日期转换为我的本地日期时间和区域。到目前为止我已经尝试过了:

moment.utc('2017-07-27T08:02:17+0200','YYYY-MM-DDThh:mm:ssZZ').local()

但它正在通过 moment.js 返回Invalid Date

【问题讨论】:

  • 你试过阅读文档吗?

标签: javascript datetime momentjs date-conversion localtime


【解决方案1】:

如上所述here

默认情况下,moment 解析并显示为当地时间。

您的输入字符串包含 UTC 偏移量,因此您可以简单地使用 moment(String, String)

请注意,如上所述here

Moment 的字符串解析函数(如moment(string)moment.utc(string))接受偏移信息(如果提供),但将生成的 Moment 对象转换为本地时间或 UTC 时间。

所以不需要使用local()

var m = moment('2017-07-27T08:02:17+0200', 'YYYY-MM-DDTHH:mm:ssZZ')
console.log(m.format());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

【讨论】:

    【解决方案2】:

    对于当地的时刻本身就可以,但是,如果您想要一个特定的时区,您可以使用带有位置名称的tz 方法(在Moment Timezone 中定义):

    moment.tz("2017-07-27T08:02:17+0200", "America/Toronto").format();
    

    【讨论】:

      猜你喜欢
      • 2015-05-27
      • 1970-01-01
      • 2023-01-14
      • 2018-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-26
      相关资源
      最近更新 更多