dateTimeStyle-locale.js (3025B)
1 // |reftest| skip-if(!this.hasOwnProperty("Intl")) 2 3 const msPerHour = 60 * 60 * 1000; 4 const tzOffset = 8 * msPerHour; 5 6 const date = new Date(Date.UTC(2024, 0, 1, 12, 30, 45) + tzOffset); 7 8 const timeZone = "America/Los_Angeles"; 9 10 const dateStyles = { 11 en: { 12 full: "Monday, January 1, 2024", 13 long: "January 1, 2024", 14 medium: "Jan 1, 2024", 15 short: "1/1/24", 16 }, 17 fr: { 18 full: "lundi 1 janvier 2024", 19 long: "1 janvier 2024", 20 medium: "1 janv. 2024", 21 short: "01/01/2024", 22 }, 23 de: { 24 full: "Montag, 1. Januar 2024", 25 long: "1. Januar 2024", 26 medium: "01.01.2024", 27 short: "01.01.24", 28 }, 29 es: { 30 full: "lunes, 1 de enero de 2024", 31 long: "1 de enero de 2024", 32 medium: "1 ene 2024", 33 short: "1/1/24", 34 }, 35 ja: { 36 full: "2024年1月1日月曜日", 37 long: "2024年1月1日", 38 medium: "2024/01/01", 39 short: "2024/01/01", 40 }, 41 "ar-EG": { 42 full: "الاثنين، ١ يناير ٢٠٢٤", 43 long: "١ يناير ٢٠٢٤", 44 medium: "٠١/٠١/٢٠٢٤", 45 short: "١/١/٢٠٢٤", 46 }, 47 zh: { 48 full: "2024年1月1日星期一", 49 long: "2024年1月1日", 50 medium: "2024年1月1日", 51 short: "2024/1/1", 52 }, 53 "zh-u-ca-chinese": { 54 full: "2023癸卯年十一月二十星期一", 55 long: "2023癸卯年十一月二十", 56 medium: "2023年十一月二十", 57 short: "2023/11/20", 58 }, 59 }; 60 61 const timeStyles = { 62 en: { 63 full: "12:30:45 PM Pacific Standard Time", 64 long: "12:30:45 PM PST", 65 medium: "12:30:45 PM", 66 short: "12:30 PM", 67 }, 68 fr: { 69 full: "12:30:45 heure normale du Pacifique nord-américain", 70 long: "12:30:45 UTC−8", 71 medium: "12:30:45", 72 short: "12:30", 73 }, 74 de: { 75 full: "12:30:45 Nordamerikanische Westküsten-Normalzeit", 76 long: "12:30:45 GMT-8", 77 medium: "12:30:45", 78 short: "12:30", 79 }, 80 es: { 81 full: "12:30:45 (hora estándar del Pacífico)", 82 long: "12:30:45 GMT-8", 83 medium: "12:30:45", 84 short: "12:30", 85 }, 86 ja: { 87 full: "12時30分45秒 米国太平洋標準時", 88 long: "12:30:45 GMT-8", 89 medium: "12:30:45", 90 short: "12:30", 91 }, 92 "ar-EG": { 93 full: "١٢:٣٠:٤٥ م توقيت المحيط الهادي الرسمي", 94 long: "١٢:٣٠:٤٥ م غرينتش-٨", 95 medium: "١٢:٣٠:٤٥ م", 96 short: "١٢:٣٠ م", 97 }, 98 zh: { 99 full: "北美太平洋标准时间 12:30:45", 100 long: "GMT-8 12:30:45", 101 medium: "12:30:45", 102 short: "12:30", 103 }, 104 }; 105 106 for (let [locale, styles] of Object.entries(dateStyles)) { 107 for (let [dateStyle, expected] of Object.entries(styles)) { 108 let df = new Intl.DateTimeFormat(locale, {dateStyle, timeZone}); 109 assertEq(df.format(date), expected); 110 } 111 } 112 113 for (let [locale, styles] of Object.entries(timeStyles)) { 114 for (let [timeStyle, expected] of Object.entries(styles)) { 115 let df = new Intl.DateTimeFormat(locale, {timeStyle, timeZone}); 116 assertEq(df.format(date), expected); 117 } 118 } 119 120 if (typeof reportCompare === "function") 121 reportCompare(0, 0, 'ok');