Source code

Revision control

Copy as Markdown

Other Tools

// |reftest| skip-if(!this.hasOwnProperty("Intl"))
const {
Era, Year, Month, Day, Literal
} = DateTimeFormatParts;
const tests = {
"en": [
{
options: {
day: "numeric",
month: "numeric",
year: "numeric",
era: "short",
timeZone: "UTC",
},
dates: [
{
date: new Date("1970-01-01T00:00:00.000Z"),
parts: [
Month("1"), Literal("/"), Day("1"), Literal("/"), Year("1970"), Literal(" "), Era("AD")
],
},
{
date: new Date("-001970-01-01T00:00:00.000Z"),
parts: [
Month("1"), Literal("/"), Day("1"), Literal("/"), Year("1971"), Literal(" "), Era("BC")
],
},
],
},
],
"en-001": [
{
options: {
day: "numeric",
month: "numeric",
year: "numeric",
era: "short",
timeZone: "UTC",
},
dates: [
{
date: new Date("1970-01-01T00:00:00.000Z"),
parts: [
Day("1"), Literal("/"), Month("1"), Literal("/"), Year("1970"), Literal(" "), Era("AD")
],
},
{
date: new Date("-001970-01-01T00:00:00.000Z"),
parts: [
Day("1"), Literal("/"), Month("1"), Literal("/"), Year("1971"), Literal(" "), Era("BC")
],
},
],
},
],
"de": [
{
options: {
day: "numeric",
month: "numeric",
year: "numeric",
era: "short",
timeZone: "UTC",
},
dates: [
{
date: new Date("1970-01-01T00:00:00.000Z"),
parts: [
Day("01"), Literal("."), Month("01"), Literal("."), Year("1970"), Literal(" "), Era("n. Chr.")
],
},
{
date: new Date("-001970-01-01T00:00:00.000Z"),
parts: [
Day("01"), Literal("."), Month("01"), Literal("."), Year("1971"), Literal(" "), Era("v. Chr.")
],
},
],
},
],
"fr": [
{
options: {
day: "numeric",
month: "numeric",
year: "numeric",
era: "short",
timeZone: "UTC",
},
dates: [
{
date: new Date("1970-01-01T00:00:00.000Z"),
parts: [
Day("01"), Literal("/"), Month("01"), Literal("/"), Year("1970"), Literal(" "), Era("ap. J.-C.")
],
},
{
date: new Date("-001970-01-01T00:00:00.000Z"),
parts: [
Day("01"), Literal("/"), Month("01"), Literal("/"), Year("1971"), Literal(" "), Era("av. J.-C.")
],
},
],
},
],
"es": [
{
options: {
day: "numeric",
month: "numeric",
year: "numeric",
era: "short",
timeZone: "UTC",
},
dates: [
{
date: new Date("1970-01-01T00:00:00.000Z"),
parts: [
Day("1"), Literal("/"), Month("1"), Literal("/"), Year("1970"), Literal(" "), Era("d. C.")
],
},
{
date: new Date("-001970-01-01T00:00:00.000Z"),
parts: [
Day("1"), Literal("/"), Month("1"), Literal("/"), Year("1971"), Literal(" "), Era("a. C.")
],
},
],
},
],
"nl": [
{
options: {
day: "numeric",
month: "numeric",
year: "numeric",
era: "short",
timeZone: "UTC",
},
dates: [
{
date: new Date("1970-01-01T00:00:00.000Z"),
parts: [
Day("1"), Literal("/"), Month("1"), Literal("/"), Year("1970"), Literal(" "), Era("n.Chr.")
],
},
{
date: new Date("-001970-01-01T00:00:00.000Z"),
parts: [
Day("1"), Literal("/"), Month("1"), Literal("/"), Year("1971"), Literal(" "), Era("v.Chr.")
],
},
],
},
],
"ja": [
{
options: {
day: "numeric",
month: "numeric",
year: "numeric",
era: "short",
timeZone: "UTC",
},
dates: [
{
date: new Date("1970-01-01T00:00:00.000Z"),
parts: [
Era("西暦"), Year("1970"), Literal("/"), Month("1"), Literal("/"), Day("1")
],
},
{
date: new Date("-001970-01-01T00:00:00.000Z"),
parts: [
Era("紀元前"), Year("1971"), Literal("/"), Month("1"), Literal("/"), Day("1")
],
},
],
},
],
"zh": [
{
options: {
day: "numeric",
month: "numeric",
year: "numeric",
era: "short",
timeZone: "UTC",
},
dates: [
{
date: new Date("1970-01-01T00:00:00.000Z"),
parts: [
Era("公元"), Literal(" "), Year("1970"), Literal("-"), Month("01"), Literal("-"), Day("01")
],
},
{
date: new Date("-001970-01-01T00:00:00.000Z"),
parts: [
Era("公元前"), Literal(" "), Year("1971"), Literal("-"), Month("01"), Literal("-"), Day("01")
],
},
],
},
],
"ar": [
{
options: {
day: "numeric",
month: "numeric",
year: "numeric",
era: "short",
timeZone: "UTC",
},
dates: [
{
date: new Date("1970-01-01T00:00:00.000Z"),
parts: [
Day("٠١"), Literal("-"), Month("٠١"), Literal("-"), Year("١٩٧٠"), Literal(" "), Era("م")
],
},
{
date: new Date("-001970-01-01T00:00:00.000Z"),
parts: [
Day("٠١"), Literal("-"), Month("٠١"), Literal("-"), Year("١٩٧١"), Literal(" "), Era("ق.م")
],
},
],
},
],
};
for (let [locale, inputs] of Object.entries(tests)) {
for (let {options, dates} of inputs) {
let dtf = new Intl.DateTimeFormat(locale, options);
for (let {date, parts} of dates) {
assertParts(dtf, date, parts);
}
}
}
if (typeof reportCompare === "function")
reportCompare(0, 0, "ok");