JavaScript 如何将日期转换为另一个时区
在本文中,我们将学习如何将一个时区的日期转换为另一个时区的日期。可以通过两种方法实现:
- Intl.NumberFormat() 方法
- toLocaleString() 方法
方法1:使用Intl.DateTimeFormat()和format()
Intl.NumberFormat()方法用于按照本地化格式表示数字,可以根据指定的区域设置来表示货币或百分比。这个对象的format()方法用于返回一个带有指定区域设置和格式选项的日期字符串。这将使日期以所需的时区格式化,并返回转换后的日期字符串。
语法:
intlDateObj = new Intl.DateTimeFormat('en-US', {
timeZone: "America/New_York"
});
usaTime = intlDateObj.format(date);
示例: 在这个示例中,我们将使用 Intl.NumberFormat()方法
<!DOCTYPE html>
<html lang="en">
<head>
<title>
How to convert date to another timezone in JavaScript ?
</title>
</head>
<body>
<h1 style="color: green">
GeeksForGeeks
</h1>
<b>
How to convert date to another
timezone in JavaScript?
</b>
<br><br>
<button onclick="changeTimezone()">
CLick here to change an IST date to US timezone
</button>
<script type="text/javascript">
function changeTimezone() {
let date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
document.write('Given IST datetime: ' + date + "<br>");
let intlDateObj = new Intl.DateTimeFormat('en-US', {
timeZone: "America/New_York"
});
let usaTime = intlDateObj.format(date);
document.write('USA date: ' + usaTime);
}
</script>
</body>
</html>
输出:
方法2:使用toLocaleString()
方法:
使用 toLocaleString()
方法可以返回一个字符串,该字符串根据指定的地区设置和选项格式化日期。它会将方法使用的日期从一个时区转换到另一个时区。
语法:
usaTime = date.toLocaleString("en-US", {timeZone: "America/New_York"});
示例: 在这个示例中,我们将使用 使用toLocaleString()方法 的示例
<!DOCTYPE html>
<html lang="en">
<head>
<title>
How to convert date to another timezone in JavaScript ?
</title>
</head>
<body>
<h1 style="color: green">
GeeksForGeeks
</h1>
<b>
How to convert date to another
timezone in JavaScript?
</b>
<br><br>
<button onclick="changeTimezone()">
Change timezone
</button>
<script type="text/javascript">
function changeTimezone() {
let date =
new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
document.write('Given IST datetime: ' + date + "<br>");
let usaTime =
date.toLocaleString("en-US", {
timeZone: "America/New_York"
});
document.write('USA datetime: ' + usaTime);
}
</script>
</body>
</html>
输出: