tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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');