将UTC时间(2018-07-03T10:18:58.000Z)转换为北京时间

2018-07-03T10:18:58.000Z是什么时间格式

UTC:时间标准时间,世界标准时间 ✅

GMT:格林尼治时间

GST:北京时间

js如何处理UTC时间格式

遇到问题:用了阿里云的接口,发现传的日期是UTC格式的。需要转换。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      let time = "2018-07-03T10:18:58.000Z";
      function formatUTC(utc_datetime) {
        // 转为正常的时间格式 年-月-日 时:分:秒
        var T_pos = utc_datetime.indexOf("T");
        var Z_pos = utc_datetime.indexOf("Z");
        var year_month_day = utc_datetime.substr(0, T_pos);
        var hour_minute_second = utc_datetime.substr(
          T_pos + 1,
          Z_pos - T_pos - 1
        );
        var new_datetime = year_month_day + " " + hour_minute_second; // 2017-03-31 08:02:06

        // 处理成为时间戳
        var timestamp = new Date(Date.parse(new_datetime));
        timestamp = timestamp.getTime();
        timestamp = timestamp / 1000;

        // 增加8个小时,北京时间比utc时间多八个时区
        timestamp = timestamp + 8 * 60 * 60;

        // 时间戳转为时间
        var beijing_datetime = new Date(parseInt(timestamp) * 1000)
          .toLocaleString()
          .replace(/年|月/g, "-")
          .replace(/日/g, " ");
        return beijing_datetime;
      }
      console.log(formatUTC(time)); // 打印:2018/7/3 下午6:18:58
    </script>
  </body>
</html>

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值