8205432: Replace the placeholder Japanese era name

Reviewed-by: rriggs, chegar
This commit is contained in:
Naoto Sato 2019-04-01 08:19:21 -07:00
parent 2cc859d380
commit 2a510a6353
29 changed files with 134 additions and 109 deletions

View File

@ -3633,7 +3633,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<era type="233">大正</era> <era type="233">大正</era>
<era type="234">昭和</era> <era type="234">昭和</era>
<era type="235">平成</era> <era type="235">平成</era>
<era type="236">元号</era> <!-- NewEra --> <era type="236">令和</era>
</eraAbbr> </eraAbbr>
<eraNarrow> <eraNarrow>
<era type="0">大化</era> <era type="0">大化</era>
@ -3872,7 +3872,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<era type="233">T</era> <era type="233">T</era>
<era type="234">S</era> <era type="234">S</era>
<era type="235">H</era> <era type="235">H</era>
<era type="236">N</era> <!-- NewEra --> <era type="236">R</era>
</eraNarrow> </eraNarrow>
</eras> </eras>
<dateFormats> <dateFormats>

View File

@ -2030,7 +2030,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<era type="233">Taishō</era> <era type="233">Taishō</era>
<era type="234">Shōwa</era> <era type="234">Shōwa</era>
<era type="235">Heisei</era> <era type="235">Heisei</era>
<era type="236">NewEra</era> <!-- NewEra --> <era type="236">Reiwa</era>
</eraAbbr> </eraAbbr>
<eraNarrow> <eraNarrow>
<era type="0">Taika (645650)</era> <era type="0">Taika (645650)</era>
@ -2269,7 +2269,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<era type="233">T</era> <era type="233">T</era>
<era type="234">S</era> <era type="234">S</era>
<era type="235">H</era> <era type="235">H</era>
<era type="236">N</era> <!-- NewEra --> <era type="236">R</era>
</eraNarrow> </eraNarrow>
</eras> </eras>
<dateFormats> <dateFormats>

View File

@ -11836,7 +11836,7 @@
32FC;CIRCLED KATAKANA WI;So;0;L;<circle> 30F0;;;;N;;;;; 32FC;CIRCLED KATAKANA WI;So;0;L;<circle> 30F0;;;;N;;;;;
32FD;CIRCLED KATAKANA WE;So;0;L;<circle> 30F1;;;;N;;;;; 32FD;CIRCLED KATAKANA WE;So;0;L;<circle> 30F1;;;;N;;;;;
32FE;CIRCLED KATAKANA WO;So;0;L;<circle> 30F2;;;;N;;;;; 32FE;CIRCLED KATAKANA WO;So;0;L;<circle> 30F2;;;;N;;;;;
32FF;SQUARE ERA NAME NEWERA;So;0;L;<square> 5143 53F7;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME NEWERA;;;; 32FF;SQUARE ERA NAME REIWA;So;0;L;<square> 4EE4 548C;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME REIWA;;;;
3300;SQUARE APAATO;So;0;L;<square> 30A2 30D1 30FC 30C8;;;;N;SQUARED APAATO;;;; 3300;SQUARE APAATO;So;0;L;<square> 30A2 30D1 30FC 30C8;;;;N;SQUARED APAATO;;;;
3301;SQUARE ARUHUA;So;0;L;<square> 30A2 30EB 30D5 30A1;;;;N;SQUARED ARUHUA;;;; 3301;SQUARE ARUHUA;So;0;L;<square> 30A2 30EB 30D5 30A1;;;;N;SQUARED ARUHUA;;;;
3302;SQUARE ANPEA;So;0;L;<square> 30A2 30F3 30DA 30A2;;;;N;SQUARED ANPEA;;;; 3302;SQUARE ANPEA;So;0;L;<square> 30A2 30F3 30DA 30A2;;;;N;SQUARED ANPEA;;;;

View File

@ -151,14 +151,14 @@ public final class JapaneseEra
*/ */
public static final JapaneseEra HEISEI = new JapaneseEra(2, LocalDate.of(1989, 1, 8)); public static final JapaneseEra HEISEI = new JapaneseEra(2, LocalDate.of(1989, 1, 8));
/** /**
* The singleton instance for the 'NewEra' era (2019-05-01 - current) * The singleton instance for the 'Reiwa' era (2019-05-01 - )
* which has the value 3. * which has the value 3.
*/ */
private static final JapaneseEra NEWERA = new JapaneseEra(3, LocalDate.of(2019, 5, 1)); private static final JapaneseEra REIWA = new JapaneseEra(3, LocalDate.of(2019, 5, 1));
// The number of predefined JapaneseEra constants. // The number of predefined JapaneseEra constants.
// There may be a supplemental era defined by the property. // There may be a supplemental era defined by the property.
private static final int N_ERA_CONSTANTS = NEWERA.getValue() + ERA_OFFSET; private static final int N_ERA_CONSTANTS = REIWA.getValue() + ERA_OFFSET;
/** /**
* Serialization version. * Serialization version.
@ -176,7 +176,7 @@ public final class JapaneseEra
KNOWN_ERAS[1] = TAISHO; KNOWN_ERAS[1] = TAISHO;
KNOWN_ERAS[2] = SHOWA; KNOWN_ERAS[2] = SHOWA;
KNOWN_ERAS[3] = HEISEI; KNOWN_ERAS[3] = HEISEI;
KNOWN_ERAS[4] = NEWERA; KNOWN_ERAS[4] = REIWA;
for (int i = N_ERA_CONSTANTS; i < ERA_CONFIG.length; i++) { for (int i = N_ERA_CONSTANTS; i < ERA_CONFIG.length; i++) {
CalendarDate date = ERA_CONFIG[i].getSinceDate(); CalendarDate date = ERA_CONFIG[i].getSinceDate();
LocalDate isoDate = LocalDate.of(date.getYear(), date.getMonth(), date.getDayOfMonth()); LocalDate isoDate = LocalDate.of(date.getYear(), date.getMonth(), date.getDayOfMonth());

View File

@ -50,7 +50,7 @@ import sun.util.calendar.ZoneInfo;
* 2 Taisho 1912-07-30T00:00:00 local time * 2 Taisho 1912-07-30T00:00:00 local time
* 3 Showa 1926-12-25T00:00:00 local time * 3 Showa 1926-12-25T00:00:00 local time
* 4 Heisei 1989-01-08T00:00:00 local time * 4 Heisei 1989-01-08T00:00:00 local time
* 5 NewEra 2019-05-01T00:00:00 local time * 5 Reiwa 2019-05-01T00:00:00 local time
* ------------------------------------------------------ * ------------------------------------------------------
* }</pre> * }</pre>
* *
@ -129,9 +129,9 @@ class JapaneseImperialCalendar extends Calendar {
public static final int HEISEI = 4; public static final int HEISEI = 4;
/** /**
* The ERA constant designating the NewEra era. * The ERA constant designating the Reiwa era.
*/ */
private static final int NEWERA = 5; private static final int REIWA = 5;
private static final int EPOCH_OFFSET = 719163; // Fixed date of January 1, 1970 (Gregorian) private static final int EPOCH_OFFSET = 719163; // Fixed date of January 1, 1970 (Gregorian)
@ -1761,12 +1761,12 @@ class JapaneseImperialCalendar extends Calendar {
} }
} else if (transitionYear) { } else if (transitionYear) {
if (jdate.getYear() == 1) { if (jdate.getYear() == 1) {
// As of NewEra (since Meiji) there's no case // As of Reiwa (since Meiji) there's no case
// that there are multiple transitions in a // that there are multiple transitions in a
// year. Historically there was such // year. Historically there was such
// case. There might be such case again in the // case. There might be such case again in the
// future. // future.
if (era > NEWERA) { if (era > REIWA) {
CalendarDate pd = eras[era - 1].getSinceDate(); CalendarDate pd = eras[era - 1].getSinceDate();
if (normalizedYear == pd.getYear()) { if (normalizedYear == pd.getYear()) {
d.setMonth(pd.getMonth()).setDayOfMonth(pd.getDayOfMonth()); d.setMonth(pd.getMonth()).setDayOfMonth(pd.getDayOfMonth());

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 1996, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1996, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -106,7 +106,7 @@ public class FormatData extends ParallelListResourceBundle {
"T", "T",
"S", "S",
"H", "H",
"N", // NewEra "R",
}; };
// Japanese imperial calendar era strings // Japanese imperial calendar era strings
@ -116,7 +116,7 @@ public class FormatData extends ParallelListResourceBundle {
"Taisho", "Taisho",
"Showa", "Showa",
"Heisei", "Heisei",
"NewEra", // NewEra "Reiwa",
}; };
return new Object[][] { return new Object[][] {

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2013, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -159,7 +159,7 @@ public class JavaTimeSupplementary extends OpenListResourceBundle {
"Taisho", "Taisho",
"Showa", "Showa",
"Heisei", "Heisei",
"NewEra", // New Era "Reiwa",
}; };
final String[] sharedShortEras = { final String[] sharedShortEras = {

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -48,7 +48,7 @@ import java.util.TimeZone;
* Taisho 1912-07-30T00:00:00 local time * Taisho 1912-07-30T00:00:00 local time
* Showa 1926-12-25T00:00:00 local time * Showa 1926-12-25T00:00:00 local time
* Heisei 1989-01-08T00:00:00 local time * Heisei 1989-01-08T00:00:00 local time
* NewEra 2019-05-01T00:00:00 local time * Reiwa 2019-05-01T00:00:00 local time
* ----------------------------------------------------------------------- * -----------------------------------------------------------------------
* }</pre> * }</pre>
* *

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -43,7 +43,7 @@ public class LocalGregorianCalendar extends BaseCalendar {
new Era("Taisho", "T", -1812153600000L, true), new Era("Taisho", "T", -1812153600000L, true),
new Era("Showa", "S", -1357603200000L, true), new Era("Showa", "S", -1357603200000L, true),
new Era("Heisei", "H", 600220800000L, true), new Era("Heisei", "H", 600220800000L, true),
new Era("NewEra", "N", 1556668800000L, true), new Era("Reiwa", "R", 1556668800000L, true),
}; };
private static boolean isValidEra(Era newEra, Era[] eras) { private static boolean isValidEra(Era newEra, Era[] eras) {

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -84,10 +84,10 @@ public class CalendarNameProviderImpl extends CalendarNameProvider implements Av
Era[] jeras = CalendarSystem.forName("japanese").getEras(); Era[] jeras = CalendarSystem.forName("japanese").getEras();
if (value <= jeras.length) { if (value <= jeras.length) {
// Localized era name could not be retrieved from this provider. // Localized era name could not be retrieved from this provider.
// This can occur either for NewEra or SupEra. // This can occur either for Reiwa or SupEra.
// //
// If it's CLDR provider, try COMPAT first, which is guaranteed to have // If it's CLDR provider, try COMPAT first, which is guaranteed to have
// the name for NewEra. // the name for Reiwa.
if (type == LocaleProviderAdapter.Type.CLDR) { if (type == LocaleProviderAdapter.Type.CLDR) {
lr = LocaleProviderAdapter.forJRE().getLocaleResources(locale); lr = LocaleProviderAdapter.forJRE().getLocaleResources(locale);
key = getResourceKeyFor(LocaleProviderAdapter.Type.JRE, key = getResourceKeyFor(LocaleProviderAdapter.Type.JRE,

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 1996, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1996, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -91,7 +91,7 @@ public class FormatData_ja extends ParallelListResourceBundle {
"\u5927\u6b63", // Taisho "\u5927\u6b63", // Taisho
"\u662d\u548c", // Showa "\u662d\u548c", // Showa
"\u5e73\u6210", // Heisei "\u5e73\u6210", // Heisei
"\u5143\u53f7", // NewEra "\u4ee4\u548c", // Reiwa
}; };
final String[] rocEras = { final String[] rocEras = {
"\u6c11\u56fd\u524d", "\u6c11\u56fd\u524d",

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2013, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -154,7 +154,7 @@ public class JavaTimeSupplementary_ja extends OpenListResourceBundle {
"\u5927\u6b63", "\u5927\u6b63",
"\u662d\u548c", "\u662d\u548c",
"\u5e73\u6210", "\u5e73\u6210",
"\u5143\u53f7", // NewEra "\u4ee4\u548c",
}; };
final String[] sharedJavaTimeShortEras = { final String[] sharedJavaTimeShortEras = {

View File

@ -11836,7 +11836,7 @@
32FC;CIRCLED KATAKANA WI;So;0;L;<circle> 30F0;;;;N;;;;; 32FC;CIRCLED KATAKANA WI;So;0;L;<circle> 30F0;;;;N;;;;;
32FD;CIRCLED KATAKANA WE;So;0;L;<circle> 30F1;;;;N;;;;; 32FD;CIRCLED KATAKANA WE;So;0;L;<circle> 30F1;;;;N;;;;;
32FE;CIRCLED KATAKANA WO;So;0;L;<circle> 30F2;;;;N;;;;; 32FE;CIRCLED KATAKANA WO;So;0;L;<circle> 30F2;;;;N;;;;;
32FF;SQUARE ERA NAME NEWERA;So;0;L;<square> 5143 53F7;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME NEWERA;;;; 32FF;SQUARE ERA NAME REIWA;So;0;L;<square> 4EE4 548C;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME REIWA;;;;
3300;SQUARE APAATO;So;0;L;<square> 30A2 30D1 30FC 30C8;;;;N;SQUARED APAATO;;;; 3300;SQUARE APAATO;So;0;L;<square> 30A2 30D1 30FC 30C8;;;;N;SQUARED APAATO;;;;
3301;SQUARE ARUHUA;So;0;L;<square> 30A2 30EB 30D5 30A1;;;;N;SQUARED ARUHUA;;;; 3301;SQUARE ARUHUA;So;0;L;<square> 30A2 30EB 30D5 30A1;;;;N;SQUARED ARUHUA;;;;
3302;SQUARE ANPEA;So;0;L;<square> 30A2 30F3 30DA 30A2;;;;N;SQUARED ANPEA;;;; 3302;SQUARE ANPEA;So;0;L;<square> 30A2 30F3 30DA 30A2;;;;N;SQUARED ANPEA;;;;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2010, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -137,9 +137,9 @@ public class WeekDateTest {
Calendar jcal = Calendar.getInstance(TimeZone.getTimeZone("GMT"), Calendar jcal = Calendar.getInstance(TimeZone.getTimeZone("GMT"),
new Locale("ja", "JP", "JP")); new Locale("ja", "JP", "JP"));
String format = "2-W01-2"; // 2019-12-31 == N1-12-31 String format = "2-W01-2"; // 2019-12-31 == R1-12-31
int expectedYear = 2019; int expectedYear = 2019;
// Check the current era, Heisei or NewEra // Check the current era, Heisei or Reiwa
if (System.currentTimeMillis() < 1556668800000L) { if (System.currentTimeMillis() < 1556668800000L) {
format = "21-W01-3"; // 2008-12-31 == H20-12-31 format = "21-W01-3"; // 2008-12-31 == H20-12-31
expectedYear = 2008; expectedYear = 2008;

View File

@ -1,5 +1,5 @@
/* /*
o Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved. o Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -111,7 +111,9 @@ import org.testng.annotations.Test;
*/ */
@Test @Test
public class TCKJapaneseChronology { public class TCKJapaneseChronology {
private static final int YDIFF_NEWERA = 2018;
// Year differences from Gregorian years.
private static final int YDIFF_REIWA = 2018;
private static final int YDIFF_HEISEI = 1988; private static final int YDIFF_HEISEI = 1988;
private static final int YDIFF_MEIJI = 1867; private static final int YDIFF_MEIJI = 1867;
private static final int YDIFF_SHOWA = 1925; private static final int YDIFF_SHOWA = 1925;
@ -174,7 +176,7 @@ public class TCKJapaneseChronology {
@DataProvider(name="createByEra") @DataProvider(name="createByEra")
Object[][] data_createByEra() { Object[][] data_createByEra() {
return new Object[][] { return new Object[][] {
{JapaneseEra.of(3), 2020 - YDIFF_NEWERA, 2, 29, 60, LocalDate.of(2020, 2, 29)}, // NEWERA {JapaneseEra.of(3), 2020 - YDIFF_REIWA, 2, 29, 60, LocalDate.of(2020, 2, 29)},
{JapaneseEra.HEISEI, 1996 - YDIFF_HEISEI, 2, 29, 60, LocalDate.of(1996, 2, 29)}, {JapaneseEra.HEISEI, 1996 - YDIFF_HEISEI, 2, 29, 60, LocalDate.of(1996, 2, 29)},
{JapaneseEra.HEISEI, 2000 - YDIFF_HEISEI, 2, 29, 60, LocalDate.of(2000, 2, 29)}, {JapaneseEra.HEISEI, 2000 - YDIFF_HEISEI, 2, 29, 60, LocalDate.of(2000, 2, 29)},
{JapaneseEra.MEIJI, 1874 - YDIFF_MEIJI, 2, 28, 59, LocalDate.of(1874, 2, 28)}, {JapaneseEra.MEIJI, 1874 - YDIFF_MEIJI, 2, 28, 59, LocalDate.of(1874, 2, 28)},
@ -367,8 +369,8 @@ public class TCKJapaneseChronology {
@DataProvider(name="prolepticYear") @DataProvider(name="prolepticYear")
Object[][] data_prolepticYear() { Object[][] data_prolepticYear() {
return new Object[][] { return new Object[][] {
{3, JapaneseEra.of(3), 1, 1 + YDIFF_NEWERA, false}, // NEWERA {3, JapaneseEra.of(3), 1, 1 + YDIFF_REIWA, false},
{3, JapaneseEra.of(3), 102, 102 + YDIFF_NEWERA, true}, // NEWERA {3, JapaneseEra.of(3), 102, 102 + YDIFF_REIWA, true},
{2, JapaneseEra.HEISEI, 1, 1 + YDIFF_HEISEI, false}, {2, JapaneseEra.HEISEI, 1, 1 + YDIFF_HEISEI, false},
{2, JapaneseEra.HEISEI, 4, 4 + YDIFF_HEISEI, true}, {2, JapaneseEra.HEISEI, 4, 4 + YDIFF_HEISEI, true},
@ -553,7 +555,7 @@ public class TCKJapaneseChronology {
{ JapaneseEra.TAISHO, 0, "Taisho"}, { JapaneseEra.TAISHO, 0, "Taisho"},
{ JapaneseEra.SHOWA, 1, "Showa"}, { JapaneseEra.SHOWA, 1, "Showa"},
{ JapaneseEra.HEISEI, 2, "Heisei"}, { JapaneseEra.HEISEI, 2, "Heisei"},
{ JapaneseEra.of(3), 3, "NewEra"}, // NEWERA { JapaneseEra.of(3), 3, "Reiwa"},
}; };
} }
@ -689,7 +691,7 @@ public class TCKJapaneseChronology {
{JapaneseChronology.INSTANCE.date(1989, 1, 7), "Japanese Showa 64-01-07"}, {JapaneseChronology.INSTANCE.date(1989, 1, 7), "Japanese Showa 64-01-07"},
{JapaneseChronology.INSTANCE.date(1989, 1, 8), "Japanese Heisei 1-01-08"}, {JapaneseChronology.INSTANCE.date(1989, 1, 8), "Japanese Heisei 1-01-08"},
{JapaneseChronology.INSTANCE.date(2012, 12, 6), "Japanese Heisei 24-12-06"}, {JapaneseChronology.INSTANCE.date(2012, 12, 6), "Japanese Heisei 24-12-06"},
{JapaneseChronology.INSTANCE.date(2020, 1, 6), "Japanese NewEra 2-01-06"}, {JapaneseChronology.INSTANCE.date(2020, 1, 6), "Japanese Reiwa 2-01-06"},
}; };
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -79,7 +79,7 @@ public class TCKJapaneseEra {
@DataProvider(name = "JapaneseEras") @DataProvider(name = "JapaneseEras")
Object[][] data_of_eras() { Object[][] data_of_eras() {
return new Object[][] { return new Object[][] {
{JapaneseEra.of(3), "NewEra", 3}, // NEWERA {JapaneseEra.of(3), "Reiwa", 3},
{JapaneseEra.HEISEI, "Heisei", 2}, {JapaneseEra.HEISEI, "Heisei", 2},
{JapaneseEra.SHOWA, "Showa", 1}, {JapaneseEra.SHOWA, "Showa", 1},
{JapaneseEra.TAISHO, "Taisho", 0}, {JapaneseEra.TAISHO, "Taisho", 0},

View File

@ -34,6 +34,7 @@ import java.util.Locale;
import org.testng.annotations.DataProvider; import org.testng.annotations.DataProvider;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
/** /**
* Tests for the Japanese chronology * Tests for the Japanese chronology
@ -59,7 +60,7 @@ public class TestJapaneseChronology {
{ JapaneseEra.SHOWA, 64, 1, 7, 1989 }, { JapaneseEra.SHOWA, 64, 1, 7, 1989 },
{ JapaneseEra.HEISEI, 1, 1, 8, 1989 }, { JapaneseEra.HEISEI, 1, 1, 8, 1989 },
{ JapaneseEra.HEISEI, 31, 4, 30, 2019 }, { JapaneseEra.HEISEI, 31, 4, 30, 2019 },
{ JapaneseEra.of(3), 1, 5, 1, 2019 }, // NEWERA { JapaneseEra.of(3), 1, 5, 1, 2019 },
}; };
} }
@ -77,7 +78,7 @@ public class TestJapaneseChronology {
{ JapaneseEra.HEISEI, 1, 1, 1, 8 }, { JapaneseEra.HEISEI, 1, 1, 1, 8 },
{ JapaneseEra.HEISEI, 2, 8, 1, 8 }, { JapaneseEra.HEISEI, 2, 8, 1, 8 },
{ JapaneseEra.HEISEI, 31, 120, 4, 30 }, { JapaneseEra.HEISEI, 31, 120, 4, 30 },
{ JapaneseEra.of(3), 1, 1, 5, 1 }, // NEWERA { JapaneseEra.of(3), 1, 1, 5, 1 },
}; };
} }
@ -110,8 +111,8 @@ public class TestJapaneseChronology {
{ JapaneseEra.HEISEI, 1, 1, 7 }, { JapaneseEra.HEISEI, 1, 1, 7 },
{ JapaneseEra.HEISEI, 1, 2, 29 }, { JapaneseEra.HEISEI, 1, 2, 29 },
{ JapaneseEra.HEISEI, 31, 5, 1 }, { JapaneseEra.HEISEI, 31, 5, 1 },
{ JapaneseEra.of(3), 1, 4, 30 }, // NEWERA { JapaneseEra.of(3), 1, 4, 30 },
{ JapaneseEra.of(3), Year.MAX_VALUE, 12, 31 }, // NEWERA { JapaneseEra.of(3), Year.MAX_VALUE, 12, 31 },
}; };
} }
@ -131,9 +132,9 @@ public class TestJapaneseChronology {
{ JapaneseEra.HEISEI, -1 }, { JapaneseEra.HEISEI, -1 },
{ JapaneseEra.HEISEI, 0 }, { JapaneseEra.HEISEI, 0 },
{ JapaneseEra.HEISEI, 32 }, { JapaneseEra.HEISEI, 32 },
{ JapaneseEra.of(3), -1 }, // NEWERA { JapaneseEra.of(3), -1 },
{ JapaneseEra.of(3), 0 }, // NEWERA { JapaneseEra.of(3), 0 },
{ JapaneseEra.of(3), Year.MAX_VALUE }, // NEWERA { JapaneseEra.of(3), Year.MAX_VALUE },
}; };
} }
@ -151,8 +152,21 @@ public class TestJapaneseChronology {
{ JapaneseEra.HEISEI, 1, 360 }, { JapaneseEra.HEISEI, 1, 360 },
{ JapaneseEra.HEISEI, 2, 366 }, { JapaneseEra.HEISEI, 2, 366 },
{ JapaneseEra.HEISEI, 31, 121 }, { JapaneseEra.HEISEI, 31, 121 },
{ JapaneseEra.of(3), 1, 246 }, // NEWERA { JapaneseEra.of(3), 1, 246 },
{ JapaneseEra.of(3), 2, 367 }, // NEWERA { JapaneseEra.of(3), 2, 367 },
};
}
@DataProvider
Object[][] eraNameData() {
return new Object[][] {
// Japanese era, name, exception
{ "Meiji", JapaneseEra.MEIJI, null },
{ "Taisho", JapaneseEra.TAISHO, null },
{ "Showa", JapaneseEra.SHOWA, null },
{ "Heisei", JapaneseEra.HEISEI, null },
{ "Reiwa", JapaneseEra.of(3), null },
{ "NewEra", null, IllegalArgumentException.class},
}; };
} }
@ -204,4 +218,13 @@ public class TestJapaneseChronology {
JapaneseDate date = JAPANESE.dateYearDay(era, yearOfEra, dayOfYear); JapaneseDate date = JAPANESE.dateYearDay(era, yearOfEra, dayOfYear);
System.out.printf("No DateTimeException with era=%s, year=%d, dayOfYear=%d%n", era, yearOfEra, dayOfYear); System.out.printf("No DateTimeException with era=%s, year=%d, dayOfYear=%d%n", era, yearOfEra, dayOfYear);
} }
@Test(dataProvider="eraNameData")
public void test_eraName(String eraName, JapaneseEra era, Class expectedEx) {
try {
assertEquals(JapaneseEra.valueOf(eraName), era);
} catch (Exception ex) {
assertTrue(expectedEx.isInstance(ex));
}
}
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2013, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -776,9 +776,9 @@ public class TestUmmAlQuraChronology {
{HijrahDate.of(1434,5,1), "Japanese Heisei 25-03-13"}, {HijrahDate.of(1434,5,1), "Japanese Heisei 25-03-13"},
{HijrahDate.of(1436,1,1), "Japanese Heisei 26-10-25"}, {HijrahDate.of(1436,1,1), "Japanese Heisei 26-10-25"},
{HijrahDate.of(1440,8,25), "Japanese Heisei 31-04-30"}, {HijrahDate.of(1440,8,25), "Japanese Heisei 31-04-30"},
{HijrahDate.of(1440,8,26), "Japanese NewEra 1-05-01"}, {HijrahDate.of(1440,8,26), "Japanese Reiwa 1-05-01"},
{HijrahDate.of(1500,6,12), "Japanese NewEra 59-05-05"}, {HijrahDate.of(1500,6,12), "Japanese Reiwa 59-05-05"},
{HijrahDate.of(1550,3,11), "Japanese NewEra 107-08-11"}, {HijrahDate.of(1550,3,11), "Japanese Reiwa 107-08-11"},
}; };
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2013, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -143,7 +143,7 @@ public class TestNonIsoFormatter {
// Chronology, lenient era/year, strict era/year // Chronology, lenient era/year, strict era/year
{ JAPANESE, "Meiji 123", "Heisei 2" }, { JAPANESE, "Meiji 123", "Heisei 2" },
{ JAPANESE, "Showa 65", "Heisei 2" }, { JAPANESE, "Showa 65", "Heisei 2" },
{ JAPANESE, "Heisei 32", "NewEra 2" }, // NewEra { JAPANESE, "Heisei 32", "Reiwa 2" },
}; };
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2007, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -364,7 +364,7 @@ public class CalendarAdapter extends Calendar {
"Taisho", "Taisho",
"Showa", "Showa",
"Heisei", "Heisei",
"NewEra" "Reiwa"
}; };
break; break;
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2007, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -322,7 +322,7 @@ public class Symbol {
put("taisho", new Symbol(Type.ERA, 2)); put("taisho", new Symbol(Type.ERA, 2));
put("showa", new Symbol(Type.ERA, 3)); put("showa", new Symbol(Type.ERA, 3));
put("heisei", new Symbol(Type.ERA, 4)); put("heisei", new Symbol(Type.ERA, 4));
put("newera", new Symbol(Type.ERA, 5)); put("reiwa", new Symbol(Type.ERA, 5));
} }
} }

View File

@ -57,7 +57,7 @@ test Default dates
check millisecond 0 check millisecond 0
clear all clear all
set era NewEra set era Reiwa
check era Heisei check era Heisei
check datetime 31 Jan 1 0 0 0 check datetime 31 Jan 1 0 0 0
check millisecond 0 check millisecond 0

View File

@ -16,10 +16,10 @@ set non-lenient
test add ERA test add ERA
use jcal use jcal
clear all clear all
set date NewEra 17 Mar 8 set date Reiwa 17 Mar 8
add era 10 add era 10
# as of NewEra 17 March 8 # as of Reiwa 17 March 8
check era NewEra check era Reiwa
add era -100 add era -100
check era BeforeMeiji check era BeforeMeiji
@ -342,12 +342,12 @@ test add MONTH
check date BeforeMeiji $minyear May 18 check date BeforeMeiji $minyear May 18
check timeofday 1 47 4 191 check timeofday 1 47 4 191
set date NewEra 17 Jan 1 set date Reiwa 17 Jan 1
get max year get max year
assign $result $max assign $result $max
set date NewEra $max Jul 17 set date Reiwa $max Jul 17
add month 1 add month 1
check date NewEra $max Aug 17 check date Reiwa $max Aug 17
# set date Heisei $max Jul 28 # set date Heisei $max Jul 28
# set timeofday 23 59 59 999 # set timeofday 23 59 59 999
# add month 1 # add month 1

View File

@ -14,10 +14,10 @@ new instance tokyocal
test Make sure that the maximum year value doesn't depent on era test Make sure that the maximum year value doesn't depent on era
use jcal use jcal
# Note: the max year value is as of NewEra # Note: the max year value is as of Reiwa
assign 292276976 $max assign 292276976 $max
clear all clear all
set date NewEra 1 May 1 set date Reiwa 1 May 1
get millis get millis
check max year $max check max year $max
assign $max $maxyear assign $max $maxyear
@ -39,9 +39,9 @@ test Make sure that the maximum year value doesn't depent on era
test Max of ERA test Max of ERA
use jcal use jcal
# Assumption: NewEra is the current era # Assumption: Reiwa is the current era
check maximum era NewEra check maximum era Reiwa
check leastmax era NewEra check leastmax era Reiwa
test Actual max MONTH test Actual max MONTH
use jcal use jcal
@ -78,7 +78,7 @@ test Actual max MONTH
check actualmax month Apr check actualmax month Apr
clear all clear all
set date NewEra 2 Jan 1 set date Reiwa 2 Jan 1
set year $maxyear set year $maxyear
check actualmax month Aug check actualmax month Aug
get millis get millis
@ -133,8 +133,8 @@ test Actual max DAY_OF_YEAR
# time zone dependent # time zone dependent
use tokyocal use tokyocal
clear all clear all
set date NewEra $maxyear Jan 1 set date Reiwa $maxyear Jan 1
# the last date of NewEra is N292276976.08.17T16:12:55.807+0900 # the last date of Reiwa is R292276976.08.17T16:12:55.807+0900
check actualmax day_of_year 229 # 31+28+31+30+31+30+31+17 check actualmax day_of_year 229 # 31+28+31+30+31+30+31+17
test Actual max WEEK_OF_YEAR test Actual max WEEK_OF_YEAR
@ -165,12 +165,12 @@ test Actual max WEEK_OF_YEAR
clear all clear all
set date Heisei 31 Apr 28 set date Heisei 31 Apr 28
check actualmax week_of_year 17 check actualmax week_of_year 17
set date NewEra 1 Aug 9 set date Reiwa 1 Aug 9
check actualmax week_of_year 35 check actualmax week_of_year 35
use tokyocal use tokyocal
set date NewEra $maxyear Jan 1 set date Reiwa $maxyear Jan 1
# the last date of NewEra is N292276976.08.17T16:12:55.807+0900 (Sunday) # the last date of Reiwa is R292276976.08.17T16:12:55.807+0900 (Sunday)
# The year is equivalent to 2003 (Gregorian). # The year is equivalent to 2003 (Gregorian).
check actualmax week_of_year 34 check actualmax week_of_year 34
@ -197,12 +197,12 @@ test Actual max WEEK_OF_MONTH
clear all clear all
set date Heisei 31 Apr 30 set date Heisei 31 Apr 30
check actualmax week_of_month 5 check actualmax week_of_month 5
set date NewEra 1 May 1 set date Reiwa 1 May 1
check actualmax week_of_month 5 check actualmax week_of_month 5
use tokyocal use tokyocal
set date NewEra $maxyear Jan 1 set date Reiwa $maxyear Jan 1
# the last date of NewEra is N292276976.08.17T16:12:55.807+0900 (Sunday) # the last date of Reiwa is R292276976.08.17T16:12:55.807+0900 (Sunday)
# The year is equivalent to 2003 (Gregorian). # The year is equivalent to 2003 (Gregorian).
check actualmax week_of_month 4 check actualmax week_of_month 4
@ -229,13 +229,13 @@ test Actual max DAY_OF_WEEK_IN_MONTH
clear all clear all
set date Heisei 31 Apr 30 set date Heisei 31 Apr 30
check actualmax week_of_month 5 check actualmax week_of_month 5
set date NewEra 1 May 1 set date Reiwa 1 May 1
check actualmax week_of_month 5 check actualmax week_of_month 5
use tokyocal use tokyocal
clear all clear all
set date NewEra $maxyear Jan 1 set date Reiwa $maxyear Jan 1
# the last date of NewEra is N292276976.08.17T16:12:55.807+0900 (Sunday) # the last date of Reiwa is R292276976.08.17T16:12:55.807+0900 (Sunday)
# The year is equivalent to 2003 (Gregorian). # The year is equivalent to 2003 (Gregorian).
check actualmax week_of_month 4 check actualmax week_of_month 4
@ -269,11 +269,11 @@ test Actual max YEAR
set date Heisei 1 Aug 18 set date Heisei 1 Aug 18
check actualmax year 30 check actualmax year 30
set date NewEra 1 Apr 30 set date Reiwa 1 Apr 30
check actualmax year 31 check actualmax year 31
# Date/time beyond the last date in the max year. # Date/time beyond the last date in the max year.
set date NewEra 1 Aug 18 set date Reiwa 1 Aug 18
check actualmax year 292276975 check actualmax year 292276975
test Least max YEAR test Least max YEAR

View File

@ -147,13 +147,13 @@ test roll YEAR
roll year -1 roll year -1
check date Heisei 31 Apr 30 check date Heisei 31 Apr 30
set date NewEra 2 Apr 30 set date Reiwa 2 Apr 30
get max year get max year
assign $result $hmax assign $result $hmax
roll year -1 roll year -1
check date NewEra $hmax Apr 30 check date Reiwa $hmax Apr 30
roll year 1 roll year 1
check date NewEra 2 Apr 30 check date Reiwa 2 Apr 30
test roll MONTH test roll MONTH
set date BeforeMeiji 1867 Dec 1 set date BeforeMeiji 1867 Dec 1
@ -276,16 +276,16 @@ test roll MONTH
check date BeforeMeiji $minyear May 18 check date BeforeMeiji $minyear May 18
check timeofday 1 47 4 191 check timeofday 1 47 4 191
set date NewEra 17 Jan 1 set date Reiwa 17 Jan 1
get max year get max year
assign $result $max assign $result $max
set date NewEra $max Jul 28 set date Reiwa $max Jul 28
roll month 1 roll month 1
check date NewEra $max Aug 17 check date Reiwa $max Aug 17
set date NewEra $max Jul 28 set date Reiwa $max Jul 28
set timeofday 23 59 59 999 set timeofday 23 59 59 999
roll month 1 roll month 1
check date NewEra $max Aug 16 check date Reiwa $max Aug 16
check timeofday 23 59 59 999 check timeofday 23 59 59 999
test roll WEEK_OF_YEAR test roll WEEK_OF_YEAR

View File

@ -51,12 +51,12 @@ public class JapaneseEraNameTest {
Object[][] names() { Object[][] names() {
return new Object[][] { return new Object[][] {
// type, locale, name // type, locale, name
{ LONG, JAPAN, "\u5143\u53f7" }, // NewEra { LONG, JAPAN, "\u4ee4\u548c" },
{ LONG, US, "NewEra" }, { LONG, US, "Reiwa" },
{ LONG, CHINA, "NewEra" }, { LONG, CHINA, "Reiwa" },
{ SHORT, JAPAN, "\u5143\u53f7" }, { SHORT, JAPAN, "\u4ee4\u548c" },
{ SHORT, US, "NewEra" }, { SHORT, US, "Reiwa" },
{ SHORT, CHINA, "N" }, { SHORT, CHINA, "R" },
}; };
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -47,7 +47,7 @@ public class JapaneseLenientEraTest {
// lenient era/year, strict era/year // lenient era/year, strict era/year
{ "Meiji 123", "Heisei 2" }, { "Meiji 123", "Heisei 2" },
{ "Sh\u014dwa 65", "Heisei 2" }, { "Sh\u014dwa 65", "Heisei 2" },
{ "Heisei 32", "NewEra 2" }, // NewEra { "Heisei 32", "Reiwa 2" },
}; };
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -68,7 +68,7 @@ public class NarrowNamesTest {
HOUR_OF_DAY, 23); HOUR_OF_DAY, 23);
test(JAJPJP, DAY_OF_WEEK, test(JAJPJP, DAY_OF_WEEK,
LocalDateTime.now().isBefore(LocalDateTime.of(2019, 5, 1, 0, 0)) ? LocalDateTime.now().isBefore(LocalDateTime.of(2019, 5, 1, 0, 0)) ?
"\u65e5" : "\u706b", // "Sun" for HEISEI, "Tue" for NEWERA "\u65e5" : "\u706b", // "Sun" for HEISEI, "Tue" for REIWA
YEAR, 24, MONTH, DECEMBER, DAY_OF_MONTH, 23); YEAR, 24, MONTH, DECEMBER, DAY_OF_MONTH, 23);
test(THTH, MONTH, NARROW_STANDALONE, "\u0e18.\u0e04.", test(THTH, MONTH, NARROW_STANDALONE, "\u0e18.\u0e04.",
YEAR, 2555, MONTH, DECEMBER, DAY_OF_MONTH, 5); YEAR, 2555, MONTH, DECEMBER, DAY_OF_MONTH, 5);

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2005, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -240,11 +240,11 @@ public class ZoneOffsets {
} }
private static void adjustJapaneseEra(Calendar cal) { private static void adjustJapaneseEra(Calendar cal) {
// In case of Japanese calendar, explicitly set the last era; NEWERA so that // In case of Japanese calendar, explicitly set the last era; REIWA so that
// year 2005 won't throw exception // year 2005 won't throw exception
if (!cal.isLenient() && if (!cal.isLenient() &&
cal.getCalendarType().equals("japanese") && cal.getCalendarType().equals("japanese") &&
System.currentTimeMillis() < 1556668800000L) { // Current time not in NEWERA System.currentTimeMillis() < 1556668800000L) { // Current time not in REIWA
cal.set(Calendar.ERA, 5); cal.set(Calendar.ERA, 5);
cal.add(Calendar.YEAR, -30); // -30: Subtract year-length of HEISEI era cal.add(Calendar.YEAR, -30); // -30: Subtract year-length of HEISEI era
} }