📜  UTC 到当地时间 javascript (1)

📅  最后修改于: 2023-12-03 15:05:47.094000             🧑  作者: Mango

UTC 到本地时间 JavaScript

在 JavaScript 中,我们可以将 UTC 时间转换为本地时间。在本文中,我将向大家介绍如何使用 JavaScript 将 UTC 时间转换为本地时间。

获取当前 UTC 时间戳

我们可以使用 Date.now()new Date().getTime() 方法获取当前 UTC 时间戳。它们都将返回从 UTC 1970 年 1 月 1 日 00:00:00 开始计算的毫秒数。

const utcTimestamp = Date.now();
console.log(utcTimestamp);
// 输出:1626541164532
将 UTC 时间戳转换为本地时间

我们可以使用 Date 构造函数将 UTC 时间戳转换为本地时间。

const utcTimestamp = 1626541164532;

const localDate = new Date(utcTimestamp);
console.log(localDate);
// 输出:2021-07-17T04:59:24.532Z

注意,输出结果中的 Z 表示该时间为 UTC 时间,而非本地时间。

如果我们希望获得本地时间,需要使用 getTimezoneOffset() 方法获取时区偏移量,再手动计算本地时间。

const utcTimestamp = 1626541164532;

const localDate = new Date(utcTimestamp);
const timezoneOffset = localDate.getTimezoneOffset() * 60000; // 转换成毫秒
const localTimestamp = utcTimestamp - timezoneOffset;

console.log(new Date(localTimestamp));
// 输出:2021-07-17T13:59:24.532+09:00

注意,时区偏移量的单位是分钟,需要将其转换为毫秒。另外,输出结果中的 +09:00 表示东九区,即日本时间。

封装一个 UTC 到本地时间转换函数

如果我们需要频繁进行 UTC 到本地时间转换,可以将其封装为一个函数。

function utcToLocal(utcTimestamp) {
  const localDate = new Date(utcTimestamp);
  const timezoneOffset = localDate.getTimezoneOffset() * 60000; // 转换成毫秒
  const localTimestamp = utcTimestamp - timezoneOffset;

  return new Date(localTimestamp);
}

console.log(utcToLocal(1626541164532));
// 输出:2021-07-17T13:59:24.532+09:00
总结

在 JavaScript 中,我们可以很方便地将 UTC 时间转换为本地时间。只需要使用 Date 构造函数和 getTimezoneOffset() 方法即可。如果频繁进行 UTC 到本地时间转换,我们可以将其封装为一个函数简化操作。