Date.prototype.toLocaleTimeString()
åºçº¿
广æ³å¯ç¨
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
toLocaleTimeString() æ¹æ³è¿åè¯¥æ¥æå¯¹è±¡æ¶é´é¨åçå符串ï¼è¯¥åç¬¦ä¸²æ ¼å¼å è¯è¨èå¼ã卿¯æ Intl.DateTimeFormat API çå®ç°ä¸ï¼è¯¥æ¹æ³ä»
æ¯è°ç¨äº Intl.DateTimeFormat æ¹æ³ã
å°è¯ä¸ä¸
// 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: "١٢:١٥:٣٠ص"
è¯æ³
toLocaleTimeString()
toLocaleTimeString(locales)
toLocaleTimeString(locales, options)
åæ°
locales å options åæ°ä½¿ç¨åºè½å¤æå®ä½¿ç¨åªç§è¯è¨æ ¼å¼åè§åï¼å
许å®å¶è¯¥æ¹æ³çè¡ä¸ºï¼behaviorï¼ã
卿¯æ Intl.DateTimeFormat API çå®ç°ä¸ï¼è¿äºåæ°ä¸æé 彿°çåæ°å®å
¨å¯¹åºãè对äºä¸æ¯æ Intl.DateTimeFormat çå®ç°ï¼åè¦æ±å½æ°å¿½ç¥è¿ä¸¤ä¸ªåæ°ï¼ä½¿å¾å½æ°ä½¿ç¨çåºåï¼localeï¼ä»¥åè¿åçåç¬¦ä¸²çæ ¼å¼å®å
¨åå³äºå®ç°ã
localeså¯é-
表示缩åè¯è¨ä»£ç ï¼BCP 47 language tagï¼çåç¬¦ä¸²ï¼æç±æ¤ç±»åç¬¦ä¸²ç»æçæ°ç»ã对åºäº
Intl.DateTimeFormat()æé 彿°çlocalesåæ°ãå¨ä¸æ¯æ
Intl.DateTimeFormatçå®ç°ä¸ï¼è¯¥åæ°ä¼è¢«å¿½ç¥ï¼å¹¶ä¸é常ä¼ä½¿ç¨ä¸»æºçåºå设置ã optionså¯é-
ä¸ä¸ªè°æ´è¾åºæ ¼å¼ç对象ã对åºäº
Intl.DateTimeFormat()æé 彿°çoptionsåæ°ãå¦æå ¶dayPeriodãhourãminuteãsecondåfractionalSecondDigits屿§å ¨æ¯ undefinedï¼åhourãminuteãsecondè¿ä¸ä¸ªå±æ§ä¼è¢«è®¾ç½®ä¸º"numeric"ãå¨ä¸æ¯æ
Intl.DateTimeFormatçå®ç°ä¸ï¼è¯¥åæ°ä¼è¢«å¿½ç¥ã
åè§ Intl.DateTimeFormat() æé 彿°ä»¥è¯¦ç»äºè§£è¿äºåæ°ä»¥åå¦ä½ä½¿ç¨å®ä»¬ã
è¿åå¼
ä¸ä¸ªè¡¨ç¤ºç»å®ç Date å®ä¾çæ¶é´é¨åï¼ä¸ä¸è¯è¨ç¸å
³çå符串ã
卿¯æ Intl.DateTimeFormat çå®ç°ä¸ï¼è¯¥æ¹æ³çä»·äº new Intl.DateTimeFormat(locales, options).format(date)ï¼å
¶ä¸ç options å·²éè¿ä¸è¿°çè§åè¿è¡è§èåã
æ§è½
å½éè¦æ ¼å¼å大éçæ¥æï¼dateï¼æ¶ï¼æå¥½å建ä¸ä¸ª Intl.DateTimeFormat 对象ï¼å¹¶ä½¿ç¨å
¶ format() æ¹æ³ã
示ä¾
>ä½¿ç¨ toLocaleTimeString()
没ææå® locale æ¶ï¼è¿åä¸ä¸ªä½¿ç¨é»è®¤è¯è¨ç¯å¢åæ ¼å¼è®¾ç½®ï¼optionsï¼çæ ¼å¼åå符串ã
const date = new Date(Date.UTC(2012, 11, 12, 3, 0, 0));
// toLocaleTimeString() 䏿ºå¸¦åæ°æ¶ï¼å
¶é»è®¤åºååæ¶åºåå³äºå®ç°
console.log(date.toLocaleTimeString());
// "11:00:00" å¦æå¨ zh-CN åºå以åä¸å
«åºï¼å京æ¶é´ï¼ä¸è¿è¡
ä½¿ç¨ locales
以ä¸ç¤ºä¾æ¾ç¤ºä¸åçæ¬å°åæ¶é´æ ¼å¼ã为äºè·å¾ç¨æ·çé¢ï¼UIï¼ä½¿ç¨çè¯è¨æ ¼å¼è¡¨ç¤ºçå符串ï¼è¯·ç¡®ä¿ä½¿ç¨äº locales åæ°ï¼å¹¶å°å
¶æå®ä¸ºç¨æ·æä½¿ç¨çè¯è¨ã
const date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
// 以䏿 ¼å¼åè¾åºåå设使ç¨åºåçæ¬å°æ¶åºï¼
// 对äºç¾å½ï¼ä¸º America/Los_Angeles
// ç¾å¼è±è¯ï¼ä½¿ç¨å¸¦æ AM/PM ç 12 å°æ¶å¶
console.log(date.toLocaleTimeString("en-US"));
// "11:00:00 AM"
// è±å¼è±è¯ï¼ä½¿ç¨ä¸å¸¦æ AM/PM ç 24 å°æ¶å¶
console.log(date.toLocaleTimeString("en-GB"));
// "03:00:00"
// é©å½ï¼ä½¿ç¨å¸¦æ AM/PM ç 12 å°æ¶å¶
console.log(date.toLocaleTimeString("ko-KR"));
// "ì¤í 12:00:00"
// 大夿°é¿æä¼¯å½å®¶ä½¿ç¨çæ£çé¿æä¼¯æ°å
console.log(date.toLocaleTimeString("ar-EG"));
// "Ù§:Ù Ù :Ù Ù Ù
"
// å½ä½¿ç¨çè¯è¨ä¸è¢«æ¯æï¼ä¾å¦
// å·´åå²è¯ï¼åå¯ä»¥å
å«ä¸ç§åéè¯è¨ï¼è¿é以å°å°¼è¯ä¸ºä¾
console.log(date.toLocaleTimeString(["ban", "id"]));
// "11.00.00"
ä½¿ç¨ options
å¯ä»¥ä½¿ç¨ options åæ°èªå®ä¹ toLocaleTimeString() ææä¾çç»æã
const date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
// åºç¨ç¨åºå¯è½æ³è¦ä½¿ç¨ UTC æ¶é´ï¼å¹¶ä½¿å
¶å¯è§
const options = { timeZone: "UTC", timeZoneName: "short" };
console.log(date.toLocaleTimeString("en-US", options));
// "3:00:00 AM GMT"
// ææ¶ï¼åºå设置为ç¾å½çæ
åµä¸ï¼éè¦ä½¿ç¨ 24 å°æ¶å¶
console.log(date.toLocaleTimeString("en-US", { hour12: false }));
// "19:00:00"
// åªæ¾ç¤ºå°æ¶ååéï¼å¹¶ä½¿ç¨é»è®¤åºåââ使ç¨ä¸ä¸ªç©ºæ°ç»
console.log(
date.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" }),
);
// "20:01"
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-date.prototype.tolocaletimestring> |
| ECMAScript® 2027 Internationalization API Specification> # sup-date.prototype.tolocaletimestring> |