获取任何国家/地区的时间格式
Get the format of time for any country
有没有办法在JS中获取基于时区的时间格式?我想要的是这样的东西: getSpecificTimeFormat("America/New_York") returns "h:mm a" 和 getSpecificTimeFormat("Europe/Paris") returns "HH:mm"等等。
mozilla.org 中有关于如何使用 .toLocaleTimeString() 函数执行此操作的明确说明。
直接取自网站的示例:
You can find the documentation here
// Depending on timezone, your results will vary
const event = new Date('August 19, 1975 23:15:30 GMT+00:00');
console.log(event.toLocaleTimeString('en-US'));
// expected output: 1:15:30 AM
console.log(event.toLocaleTimeString('it-IT'));
// expected output: 01:15:30
console.log(event.toLocaleTimeString('ar-EG'));
// expected output: ١٢:١٥:٣٠ص
获取时区
- new Date().getTimezoneOffset() / 60
根据时区获取时间
const num=- new Date().getTimezoneOffset() / 60;
const newDate=new Date(new Date().getTime()+num*60*60*1000).toISOString()
此函数 returns 包含当前 date/time 格式数据的字符串,基于提供的语言环境字符串。
function getDateFormatString(locale) {
const options = {
hour: "numeric",
minute: "numeric",
second: "numeric",
day: "numeric",
month: "numeric",
year: "numeric",
};
const formatObj = new Intl.DateTimeFormat(locale, options).formatToParts(
Date.now()
);
return formatObj
.map((obj) => {
switch (obj.type) {
case "hour":
return "HH";
case "minute":
return "MM";
case "second":
return "SS";
case "day":
return "DD";
case "month":
return "MM";
case "year":
return "YYYY";
default:
return obj.value;
}
})
.join("");
}
console.log(getDateFormatString("en-US")); //Expected Output: "MM/DD/YYYY, HH:MM:SS PM"
console.log(getDateFormatString("ko-KR")); //Expected Output: "YYYY. MM. DD. 오후 HH:MM:SS"
编辑选项以更改从日期对象和 edit/add 个案例中提取的数据以适应它。
查找 DateTimeFormat here 的文档。
我从 newbedev.com.
上的一篇文章中改编了函数
有没有办法在JS中获取基于时区的时间格式?我想要的是这样的东西: getSpecificTimeFormat("America/New_York") returns "h:mm a" 和 getSpecificTimeFormat("Europe/Paris") returns "HH:mm"等等。
mozilla.org 中有关于如何使用 .toLocaleTimeString() 函数执行此操作的明确说明。
直接取自网站的示例:
You can find the documentation here
// Depending on timezone, your results will vary
const event = new Date('August 19, 1975 23:15:30 GMT+00:00');
console.log(event.toLocaleTimeString('en-US'));
// expected output: 1:15:30 AM
console.log(event.toLocaleTimeString('it-IT'));
// expected output: 01:15:30
console.log(event.toLocaleTimeString('ar-EG'));
// expected output: ١٢:١٥:٣٠ص
获取时区
- new Date().getTimezoneOffset() / 60
根据时区获取时间
const num=- new Date().getTimezoneOffset() / 60;
const newDate=new Date(new Date().getTime()+num*60*60*1000).toISOString()
此函数 returns 包含当前 date/time 格式数据的字符串,基于提供的语言环境字符串。
function getDateFormatString(locale) {
const options = {
hour: "numeric",
minute: "numeric",
second: "numeric",
day: "numeric",
month: "numeric",
year: "numeric",
};
const formatObj = new Intl.DateTimeFormat(locale, options).formatToParts(
Date.now()
);
return formatObj
.map((obj) => {
switch (obj.type) {
case "hour":
return "HH";
case "minute":
return "MM";
case "second":
return "SS";
case "day":
return "DD";
case "month":
return "MM";
case "year":
return "YYYY";
default:
return obj.value;
}
})
.join("");
}
console.log(getDateFormatString("en-US")); //Expected Output: "MM/DD/YYYY, HH:MM:SS PM"
console.log(getDateFormatString("ko-KR")); //Expected Output: "YYYY. MM. DD. 오후 HH:MM:SS"
编辑选项以更改从日期对象和 edit/add 个案例中提取的数据以适应它。
查找 DateTimeFormat here 的文档。
我从 newbedev.com.