📌  相关文章
📜  如何使用 JavaScript 将 UTC 日期时间转换为本地日期时间?(1)

📅  最后修改于: 2023-12-03 14:51:55.261000             🧑  作者: Mango

如何使用 JavaScript 将 UTC 日期时间转换为本地日期时间

在 JavaScript 中,我们可以使用内置的 Date 对象来处理日期和时间。当我们从数据库或其他源获取到的日期时间是以 UTC (协调世界时)格式表示时,我们可以通过一些方法将其转换为本地日期时间格式。

方法 1: 使用 toLocaleString 方法

JavaScript 中的 Date 对象提供了 toLocaleString 方法,它可以将日期时间转换为特定语言环境下的本地日期时间字符串。

// 创建一个 UTC 时间对象
const utcDate = new Date('2022-01-01T00:00:00Z');

// 将 UTC 时间转换为本地日期时间
const localDate = utcDate.toLocaleString();

console.log(localDate); // 示例输出: 2022/1/1 上午8:00:00

toLocaleString 方法中,你可以传入一些可选的参数来指定语言环境、日期格式和时间格式。

方法 2: 使用 toLocaleDateStringtoLocaleTimeString 方法

如果你希望分别将 UTC 日期和 UTC 时间转换为本地日期和本地时间,你可以使用 toLocaleDateStringtoLocaleTimeString 方法。

const utcDateTime = new Date('2022-01-01T00:00:00Z');

// 将 UTC 日期转换为本地日期
const localDate = utcDateTime.toLocaleDateString();

// 将 UTC 时间转换为本地时间
const localTime = utcDateTime.toLocaleTimeString();

console.log(localDate); // 示例输出: 2022/1/1
console.log(localTime); // 示例输出: 上午8:00:00
方法 3: 使用 getTimegetTimezoneOffset 方法

另一种方法是使用 getTimegetTimezoneOffset 方法来计算 UTC 时间和本地时间之间的差距,并将其应用于 UTC 时间。

const utcDateTime = new Date('2022-01-01T00:00:00Z');

const offsetMilliseconds = utcDateTime.getTimezoneOffset() * 60 * 1000; // 计算本地时区和 UTC 时区之间的差距(以毫秒为单位)
const localDateTime = new Date(utcDateTime.getTime() - offsetMilliseconds); // 应用时区差距

console.log(localDateTime); // 示例输出: Sat Jan 01 2022 08:00:00 GMT+0800 (中国标准时间)

这种方法可以手动计算并应用时区差距,但请注意,它不会考虑夏令时的调整。

以上是几种常用的将 UTC 日期时间转换为本地日期时间的方法。根据你的需求和应用场景,你可以选择其中一种或多种方法进行使用。