在 JavaScript 中,Date 对象由日期和时间组成。默认情况下,创建的 Date 对象使用本地计算机的时区。但是,有时您需要明确指定特定的时区。
使用 UTC
一种指定时区的方法是使用协调世界时 (UTC)。UTC 是全球标准时间,与任何时区无关。可以通过 new Date()
构造函数来创建一个 UTC 时间:
const now = new Date(); console.log(now.toUTCString()); // 输出:Wed, 07 Apr 2023 00:00:00 GMT
要在特定的时区中创建 Date 对象,可以使用 Date.UTC()
方法。该方法接受年、月、日、小时、分钟和秒作为参数,以 UTC 格式返回相应的时间戳。例如,在东京创建一个 Date 对象,可以使用如下代码:
const tokyoTime = new Date(Date.UTC(2023, 3, 7, 9, 0, 0)); console.log(tokyoTime.toString()); // 输出:Wed Apr 07 2023 18:00:00 GMT+0900 (Japan Standard Time)
注意,Date.UTC()
方法返回的是时间戳,如果要将其转换为本地时间,请使用 new Date()
构造函数。
使用时区偏移量
另一种指定时区的方法是使用时区偏移量。时区偏移量是相对于 UTC 的分钟数。例如,美国东部标准时间的时区偏移量为 -300,即 UTC-5。
要按照指定的时区偏移创建 Date 对象,可以使用 new Date()
构造函数和时间戳。该时间戳是自 1970 年 1 月 1 日以来的毫秒数,加上指定的时区偏移量(以分钟为单位)。例如,在美国东部标准时间创建一个 Date 对象,可以使用如下代码:
const easternTime = new Date(Date.now() - 300 * 60000); console.log(easternTime.toString()); // 输出:Wed Apr 06 2023 23:01:40 GMT-0400 (Eastern Daylight Time)
如果您想将本地时间转换为其他时区的时间,请先将其转换为 UTC 时间,然后再根据目标时区的偏移量进行调整。
结论
在 JavaScript 中指定时区需要使用 UTC 或时区偏移量。UTC 是全球标准时间,而时区偏移量是相对于 UTC 的分钟数。要在特定的时区中创建 Date 对象,请使用相应的方法。如果要将本地时间转换为其他时区的时间,请先将其转换为 UTC 时间,然后再使用时区偏移量进行调整。
希望本篇文章能够帮助您更好地理解 JavaScript Date 中的时区问题。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/30615