From d7aff40250f1a3600e5a2ee97b58836d894d1e59 Mon Sep 17 00:00:00 2001 From: Peter Edberg Date: Thu, 12 Sep 2013 23:50:38 +0000 Subject: [PATCH] ICU-10378 (J) Support skeleton meta-character 'J' in DateTimePatternGenerator X-SVN-Rev: 34294 --- .../icu/text/DateTimePatternGenerator.java | 53 +++++++++++++------ .../test/format/DateTimeGeneratorTest.java | 21 ++++++++ 2 files changed, 59 insertions(+), 15 deletions(-) diff --git a/icu4j/main/classes/core/src/com/ibm/icu/text/DateTimePatternGenerator.java b/icu4j/main/classes/core/src/com/ibm/icu/text/DateTimePatternGenerator.java index 5a145dd2bb2..43fcb6a6962 100644 --- a/icu4j/main/classes/core/src/com/ibm/icu/text/DateTimePatternGenerator.java +++ b/icu4j/main/classes/core/src/com/ibm/icu/text/DateTimePatternGenerator.java @@ -381,24 +381,39 @@ public class DateTimePatternGenerator implements Freezable 0; --i) fieldBuilder.append(c); } diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/DateTimeGeneratorTest.java b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/DateTimeGeneratorTest.java index 299446ebdc2..39da5d0e034 100644 --- a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/DateTimeGeneratorTest.java +++ b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/DateTimeGeneratorTest.java @@ -268,6 +268,7 @@ public class DateTimeGeneratorTest extends TestFmwk { // can be generated by using GENERATE_TEST_DATA. Must be reviewed before adding static final Object[] dateTestData = { new Date(916300739123L), // 1999-01-13T23:58:59.123,0-0800 + new ULocale("en_US"), new String[] {"yM", "1/1999"}, new String[] {"yMMM", "Jan 1999"}, @@ -285,6 +286,8 @@ public class DateTimeGeneratorTest extends TestFmwk { new String[] {"MMMEd", "Wed, Jan 13"}, new String[] {"Ed", "13 Wed"}, new String[] {"jmmssSSS", "11:58:59.123 PM"}, + new String[] {"JJmm", "11:58"}, + new ULocale("en_US@calendar=japanese"), // (new locale for testing ticket 6872<-5702) new String[] {"yM", "1/11 H"}, new String[] {"yMMM", "Jan 11 Heisei"}, @@ -302,6 +305,8 @@ public class DateTimeGeneratorTest extends TestFmwk { new String[] {"MMMEd", "Wed, Jan 13"}, new String[] {"Ed", "13 Wed"}, new String[] {"jmmssSSS", "11:58:59.123 PM"}, + new String[] {"JJmm", "11:58"}, + new ULocale("de_DE"), new String[] {"yM", "1.1999"}, new String[] {"yMMM", "Jan. 1999"}, @@ -319,6 +324,8 @@ public class DateTimeGeneratorTest extends TestFmwk { new String[] {"MMMEd", "Mi., 13. Jan."}, new String[] {"Ed", "Mi., 13."}, new String[] {"jmmssSSS", "23:58:59,123"}, + new String[] {"JJmm", "23:58"}, + new ULocale("fi"), new String[] {"yM", "1.1999"}, // (fixed expected result per ticket 6872<-6626) new String[] {"yMMM", "tammi 1999"}, // (fixed expected result per ticket 6872<-7007) @@ -336,6 +343,8 @@ public class DateTimeGeneratorTest extends TestFmwk { new String[] {"MMMEd", "ke 13. tammikuuta"}, new String[] {"Ed", "ke 13."}, new String[] {"jmmssSSS", "23.58.59,123"}, + new String[] {"JJmm", "23.58"}, + new ULocale("es"), new String[] {"yM", "1/1999"}, new String[] {"yMMM", "ene. de 1999"}, @@ -353,6 +362,8 @@ public class DateTimeGeneratorTest extends TestFmwk { new String[] {"MMMEd", "mi\u00E9. 13 de ene."}, new String[] {"Ed", "mi\u00E9. 13"}, new String[] {"jmmssSSS", "23:58:59,123"}, + new String[] {"JJmm", "23:58"}, + new ULocale("ja"), // (new locale for testing ticket 6872<-6626) new String[] {"yM", "1999/1"}, new String[] {"yMMM", "1999\u5E741\u6708"}, @@ -370,6 +381,8 @@ public class DateTimeGeneratorTest extends TestFmwk { new String[] {"MMMEd", "1\u670813\u65E5(\u6C34)"}, new String[] {"Ed", "13\u65E5(\u6C34)"}, new String[] {"jmmssSSS", "23:58:59.123"}, + new String[] {"JJmm", "23:58"}, + new ULocale("ja@calendar=japanese"), // (new locale for testing ticket 6872<-5702) new String[] {"yM", "\u5E73\u621011/1"}, new String[] {"yMMM", "\u5E73\u621011\u5E741\u6708"}, @@ -387,6 +400,8 @@ public class DateTimeGeneratorTest extends TestFmwk { new String[] {"MMMEd", "1\u670813\u65E5(\u6C34)"}, new String[] {"Ed", "13\u65E5(\u6C34)"}, new String[] {"jmmssSSS", "23:58:59.123"}, + new String[] {"JJmm", "23:58"}, + new ULocale("zh_Hans_CN"), new String[] {"yM", "1999/1"}, new String[] {"yMMM", "1999\u5E741\u6708"}, // (fixed expected result per ticket 6872<-6626) @@ -404,6 +419,8 @@ public class DateTimeGeneratorTest extends TestFmwk { new String[] {"MMMEd", "1\u670813\u65E5\u5468\u4E09"}, new String[] {"Ed", "13\u65E5\u5468\u4E09"}, new String[] {"jmmssSSS", "\u4E0B\u534811:58:59.123"}, + new String[] {"JJmm", "11:58"}, + new ULocale("zh_TW@calendar=roc"), // (new locale for testing ticket 6872<-5702) new String[] {"yM", "\u6C11\u570B88/1"}, new String[] {"yMMM", "\u6C11\u570B88\u5E741\u6708"}, @@ -421,6 +438,8 @@ public class DateTimeGeneratorTest extends TestFmwk { new String[] {"MMMEd", "1\u670813\u65E5\u9031\u4E09"}, new String[] {"Ed", "13\u65E5\uFF08\u9031\u4E09\uFF09"}, new String[] {"jmmssSSS", "\u4E0B\u534811:58:59.123"}, + new String[] {"JJmm", "11:58"}, + new ULocale("ru"), new String[] {"yM", "01.1999"}, new String[] {"yMMM", "\u042F\u043D\u0432. 1999"}, @@ -438,6 +457,7 @@ public class DateTimeGeneratorTest extends TestFmwk { new String[] {"MMMEd", "\u0421\u0440, 13 \u044F\u043D\u0432."}, new String[] {"Ed", "\u0421\u0440, 13"}, new String[] {"jmmssSSS", "23:58:59,123"}, + new String[] {"JJmm", "23:58"}, new ULocale("zh@calendar=chinese"), new String[] {"yM", "\u620A\u5BC5\u5E7411\u6708"}, @@ -456,6 +476,7 @@ public class DateTimeGeneratorTest extends TestFmwk { new String[] {"MMMEd", "\u5341\u4E00\u670826\u65E5\u5468\u4E09"}, new String[] {"Ed", "26\u65E5\u5468\u4E09"}, new String[] {"jmmssSSS", "\u4E0B\u534811:58:59.123"}, + new String[] {"JJmm", "11:58"}, }; public void DayMonthTest() { -- 2.40.0