📜  将时刻日期转换为 utc 格式时刻 - Javascript (1)

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

将时刻日期转换为 UTC 格式时刻 - JavaScript

在开发 Web 应用程序时,经常需要处理日期和时间。由于不同地区有不同的时区,因此在处理时间时需要考虑到时区问题。JavaScript 提供了 UTC(协调世界时)函数,可以将当前的本地时间转换为 UTC 时间,也可以将 UTC 时间转换为本地时间。本文将讲解如何将时刻日期转换为 UTC 格式时刻。

将本地日期时间转换为 UTC 时间

可以使用 JavaScript 的 Date 对象的 getTime 方法获取当前的本地时间(自 1970 年 1 月 1 日 00:00:00 UTC 起的毫秒数),然后用 new Date(milliseconds).toUTCString() 方法将其转换为 UTC 格式字符串。

const localDate = new Date(); // 获取当前本地时间
const timestamp = localDate.getTime(); // 获取毫秒数
const utcString = new Date(timestamp).toUTCString(); // 转换为 UTC 格式字符串
console.log(utcString); // 输出示例: "Thu, 26 Aug 2021 00:00:00 GMT"
将 UTC 日期时间转换为本地时间

我们可以使用 JavaScript 的 Date 对象的 toUTCString 方法将 UTC 格式字符串转换为 Date 对象。然后,使用 Date 对象的 getTimezoneOffset 方法获取本地时间与 UTC 时间之间的偏移量,并将其添加到 Date 对象的毫秒数上,最后使用 new Date(milliseconds) 方法将其转换为本地时间。

const utcString = "Thu, 26 Aug 2021 06:00:00 GMT"; // 获取 UTC 格式字符串
const utcDate = new Date(utcString); // 将 UTC 格式字符串转换为 Date 对象
const offset = utcDate.getTimezoneOffset(); // 获取时区偏移量(单位为分钟)
const localMilliseconds = utcDate.getTime() + offset * 60 * 1000; // 偏移量转换为毫秒数,并加到 UTC 时间上
const localDate = new Date(localMilliseconds); // 将毫秒数转换为本地时间
console.log(localDate.toString()); // 输出示例: "Thu Aug 26 2021 08:00:00 GMT+0200 (Central European Summer Time)"

以上就是将时刻日期转换为 UTC 格式时刻的方法。需要注意的是,JavaScript 的 Date 对象虽然提供了处理日期和时间的方法,但其实现方式并不总是可靠。在实际开发中,建议使用第三方库来处理日期和时间。