mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-14 17:24:01 +00:00
ICU-20536 Japanese era Reiwa in ICU4J 58
This commit is contained in:
parent
14a8ceb46a
commit
913b5e8f5d
4 changed files with 39 additions and 13 deletions
|
@ -562,6 +562,7 @@ public class JapaneseCalendar extends GregorianCalendar {
|
|||
1912, 7, 30, // Taisho
|
||||
1926, 12, 25, // Showa
|
||||
1989, 1, 8, // Heisei
|
||||
2019, 5, 1, // Reiwa
|
||||
};
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
@ -578,25 +579,25 @@ public class JapaneseCalendar extends GregorianCalendar {
|
|||
* Constant for the era starting on Sept. 8, 1868 AD.
|
||||
* @stable ICU 2.8
|
||||
*/
|
||||
static public final int MEIJI = CURRENT_ERA - 3;
|
||||
static public final int MEIJI = CURRENT_ERA - 4;
|
||||
|
||||
/**
|
||||
* Constant for the era starting on July 30, 1912 AD.
|
||||
* @stable ICU 2.8
|
||||
*/
|
||||
static public final int TAISHO = CURRENT_ERA - 2;
|
||||
static public final int TAISHO = CURRENT_ERA - 3;
|
||||
|
||||
/**
|
||||
* Constant for the era starting on Dec. 25, 1926 AD.
|
||||
* @stable ICU 2.8
|
||||
*/
|
||||
static public final int SHOWA = CURRENT_ERA - 1;
|
||||
static public final int SHOWA = CURRENT_ERA - 2;
|
||||
|
||||
/**
|
||||
* Constant for the era starting on Jan. 7, 1989 AD.
|
||||
* @stable ICU 2.8
|
||||
*/
|
||||
static public final int HEISEI = CURRENT_ERA;
|
||||
static public final int HEISEI = CURRENT_ERA - 1;
|
||||
|
||||
/**
|
||||
* Override GregorianCalendar. We should really handle YEAR_WOY and
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6d62f019b649fe4ae1dd9c4f40bd3eb21bbdb1eaf815aa72da9efc7d7d33947b
|
||||
size 12100849
|
||||
oid sha256:45df059473d167142f4a64fd78ebe8b2897990bf8cef06c72c35354e7d0a7687
|
||||
size 12101099
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e42157fa0a0b8c6151aa662837016ed0853ffd7abd948ac7ae599e92a79ed14b
|
||||
size 812434
|
||||
oid sha256:35b2ac22d5f3cdc1e7800414a806e6e9597379433f80acc9a72e7f65ecc351fe
|
||||
size 812440
|
||||
|
|
|
@ -151,9 +151,9 @@ public class JapaneseTest extends CalendarTestFmwk {
|
|||
Calendar cal = new JapaneseCalendar(loc);
|
||||
DateFormat enjformat = cal.getDateTimeFormat(0,0,new ULocale("en_JP@calendar=japanese"));
|
||||
DateFormat format = cal.getDateTimeFormat(0,0,loc);
|
||||
((SimpleDateFormat)format).applyPattern("y.M.d"); // Note: just 'y' doesn't work here.
|
||||
((SimpleDateFormat)format).applyPattern("y/M/d"); // Note: just 'y' doesn't work here.
|
||||
ParsePosition pos = new ParsePosition(0);
|
||||
Date aDate = format.parse("1.1.9", pos); // after the start of heisei accession. Jan 1, 1H wouldn't work because it is actually showa 64
|
||||
Date aDate = format.parse("1/5/9", pos); // after the start of Reiwa accession. Jan 1, R1 wouldn't work because it is actually Heisei 31
|
||||
String inEn = enjformat.format(aDate);
|
||||
|
||||
cal.clear();
|
||||
|
@ -162,7 +162,7 @@ public class JapaneseTest extends CalendarTestFmwk {
|
|||
int gotEra = cal.get(Calendar.ERA);
|
||||
|
||||
int expectYear = 1;
|
||||
int expectEra = JapaneseCalendar.CURRENT_ERA;
|
||||
int expectEra = JapaneseCalendar.CURRENT_ERA; // Reiwa
|
||||
|
||||
if((gotYear != expectYear) || (gotEra != expectEra)) {
|
||||
errln("Expected year " + expectYear + ", era " + expectEra +", but got year " + gotYear + " and era " + gotEra + ", == " + inEn);
|
||||
|
@ -170,7 +170,7 @@ public class JapaneseTest extends CalendarTestFmwk {
|
|||
logln("Got year " + gotYear + " and era " + gotEra + ", == " + inEn);
|
||||
}
|
||||
|
||||
// Test parse with missing era (should default to current era, heisei)
|
||||
// Test parse with missing era (should default to current era)
|
||||
// Test parse with incomplete information
|
||||
logln("Testing parse w/ just year...");
|
||||
Calendar cal2 = new JapaneseCalendar(loc);
|
||||
|
@ -194,7 +194,7 @@ public class JapaneseTest extends CalendarTestFmwk {
|
|||
gotYear = cal2.get(Calendar.YEAR);
|
||||
gotEra = cal2.get(Calendar.ERA);
|
||||
expectYear = 1;
|
||||
expectEra = JapaneseCalendar.CURRENT_ERA;
|
||||
expectEra = JapaneseCalendar.CURRENT_ERA; // Reiwa
|
||||
if((gotYear != 1) || (gotEra != expectEra)) {
|
||||
errln("parse "+ samplestr + " of 'y' as Japanese Calendar, expected year " + expectYear +
|
||||
" and era " + expectEra + ", but got year " + gotYear + " and era " + gotEra + " (Gregorian:" + str +")");
|
||||
|
@ -376,5 +376,30 @@ public class JapaneseTest extends CalendarTestFmwk {
|
|||
doLimitsTest(jcal, null, cal.getTime());
|
||||
doTheoreticalLimitsTest(jcal, true);
|
||||
}
|
||||
|
||||
public void TestHeiseiToReiwa() {
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.set(2019, Calendar.APRIL, 29);
|
||||
|
||||
DateFormat jfmt = DateFormat.getDateInstance(DateFormat.LONG, new ULocale("ja@calendar=japanese"));
|
||||
|
||||
final String[] EXPECTED_FORMAT = {
|
||||
"\u5E73\u621031\u5E744\u670829\u65E5", // Heisei 31 April 29
|
||||
"\u5E73\u621031\u5E744\u670830\u65E5", // Heisei 31 April 30
|
||||
"\u4EE4\u548C1\u5E745\u67081\u65E5", // Reiwa 1 May 1
|
||||
"\u4EE4\u548C1\u5E745\u67082\u65E5", // Reiwa 1 May 2
|
||||
};
|
||||
|
||||
for (int i = 0; i < EXPECTED_FORMAT.length; i++) {
|
||||
Date d = cal.getTime();
|
||||
String dateStr = jfmt.format(d);
|
||||
if (!EXPECTED_FORMAT[i].equals(dateStr)) {
|
||||
errln("Formatting year:" + cal.get(Calendar.YEAR) + " month:" + (cal.get(Calendar.MONTH) + 1)
|
||||
+ " day:" + cal.get(Calendar.DATE) + " - expected: " + EXPECTED_FORMAT[i]
|
||||
+ " / actual: " + dateStr);
|
||||
}
|
||||
cal.add(Calendar.DATE, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue