2 *******************************************************************************
\r
3 * Copyright (C) 2001-2010, International Business Machines Corporation and *
\r
4 * others. All Rights Reserved. *
\r
5 *******************************************************************************
\r
9 * Port From: ICU4C v1.8.1 : format : DateIntervalFormatTest
\r
10 * Source File: $ICU4CRoot/source/test/intltest/dtifmtts.cpp
\r
13 package com.ibm.icu.dev.test.format;
\r
15 import java.text.FieldPosition;
\r
16 import java.text.ParseException;
\r
17 import java.util.Date;
\r
18 import java.util.Locale;
\r
20 import com.ibm.icu.impl.Utility;
\r
21 import com.ibm.icu.text.DateFormat;
\r
22 import com.ibm.icu.text.DateIntervalFormat;
\r
23 import com.ibm.icu.text.DateIntervalInfo;
\r
24 import com.ibm.icu.text.SimpleDateFormat;
\r
25 import com.ibm.icu.text.DateIntervalInfo.PatternInfo;
\r
26 import com.ibm.icu.util.Calendar;
\r
27 import com.ibm.icu.util.DateInterval;
\r
28 import com.ibm.icu.util.ULocale;
\r
30 public class DateIntervalFormatTest extends com.ibm.icu.dev.test.TestFmwk {
\r
32 public static void main(String[] args) throws Exception {
\r
33 new DateIntervalFormatTest().run(args);
\r
40 public void TestFormat() {
\r
41 // first item is date pattern
\r
42 // followed by a group of locale/from_data/to_data/skeleton/interval_data
\r
44 "yyyy MM dd HH:mm:ss",
\r
46 "root", "2007 11 10 10:10:10", "2007 12 10 10:10:10", "yM", "2007-11 \\u2013 12",
\r
48 // test 'H' and 'h', using availableFormat in fallback
\r
49 "en", "2007 11 10 10:10:10", "2007 11 10 15:10:10", "Hms", "10:10:10 \\u2013 15:10:10",
\r
50 "en", "2007 11 10 10:10:10", "2007 11 10 15:10:10", "hms", "10:10:10 AM \\u2013 3:10:10 PM",
\r
52 // test skeleton with both date and time
\r
53 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMyhm", "Nov 10, 2007 10:10 AM \\u2013 Nov 20, 2007 10:10 AM",
\r
55 "en", "2007 11 10 10:10:10", "2007 11 10 11:10:10", "dMMMyhm", "Nov 10, 2007 10:10\\u201311:10 AM",
\r
57 "en", "2007 11 10 10:10:10", "2007 11 10 11:10:10", "hms", "10:10:10 AM \\u2013 11:10:10 AM",
\r
59 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEdMMMMy", "Wednesday, October 10, 2007 \\u2013 Friday, October 10, 2008",
\r
61 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMMy", "October 10, 2007 \\u2013 October 10, 2008",
\r
63 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMM", "October 10, 2007 \\u2013 October 10, 2008",
\r
65 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMMMy", "October 2007 \\u2013 October 2008",
\r
67 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEdMMMM", "Wednesday, October 10, 2007 \\u2013 Friday, October 10, 2008",
\r
69 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdMMMy", "Wed, Oct 10, 2007 \\u2013 Fri, Oct 10, 2008",
\r
71 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMy", "Oct 10, 2007 \\u2013 Oct 10, 2008",
\r
73 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMM", "Oct 10, 2007 \\u2013 Oct 10, 2008",
\r
75 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMMy", "Oct 2007 \\u2013 Oct 2008",
\r
77 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdMMM", "Wed, Oct 10, 2007 \\u2013 Fri, Oct 10, 2008",
\r
79 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdMy", "Wed, 10/10/07 \\u2013 Fri, 10/10/08",
\r
81 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMy", "10/10/07 \\u2013 10/10/08",
\r
83 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dM", "10/10/07 \\u2013 10/10/08",
\r
85 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "My", "10/07 \\u2013 10/08",
\r
87 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdM", "Wed, 10/10/07 \\u2013 Fri, 10/10/08",
\r
89 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "d", "10/10/07 \\u2013 10/10/08",
\r
91 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "Ed", "10 Wed \\u2013 10 Fri",
\r
93 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "y", "2007\\u20132008",
\r
95 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "M", "10/07 \\u2013 10/08",
\r
97 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMM", "Oct 2007 \\u2013 Oct 2008",
\r
99 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMMM", "October 2007 \\u2013 October 2008",
\r
101 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hm", "10/10/2007 10:10 AM \\u2013 10/10/2008 10:10 AM",
\r
103 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hmv", "10/10/2007 10:10 AM PT \\u2013 10/10/2008 10:10 AM PT",
\r
105 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hmz", "10/10/2007 10:10 AM PDT \\u2013 10/10/2008 10:10 AM PDT",
\r
107 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "h", "10/10/2007 10 AM \\u2013 10/10/2008 10 AM",
\r
109 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hv", "10/10/2007 10 AM PT \\u2013 10/10/2008 10 AM PT",
\r
111 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hz", "10/10/2007 10 AM PDT \\u2013 10/10/2008 10 AM PDT",
\r
113 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEddMMyyyy", "Wed, 10/10/07 \\u2013 Fri, 10/10/08",
\r
115 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EddMMy", "Wed, 10/10/07 \\u2013 Fri, 10/10/08",
\r
117 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hhmm", "10/10/2007 10:10 AM \\u2013 10/10/2008 10:10 AM",
\r
119 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hhmmzz", "10/10/2007 10:10 AM PDT \\u2013 10/10/2008 10:10 AM PDT",
\r
121 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hms", "10/10/2007 10:10:10 AM \\u2013 10/10/2008 10:10:10 AM",
\r
123 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMMMy", "O 10, 2007 \\u2013 O 10, 2008",
\r
125 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEEdM", "W, 10/10/07 \\u2013 F, 10/10/08",
\r
127 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMMMy", "Wednesday, October 10 \\u2013 Saturday, November 10, 2007",
\r
129 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMMy", "October 10 \\u2013 November 10, 2007",
\r
131 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMM", "October 10 \\u2013 November 10",
\r
133 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMMy", "October\\u2013November 2007",
\r
135 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMMM", "Wednesday, October 10 \\u2013 Saturday, November 10",
\r
137 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdMMMy", "Wed, Oct 10 \\u2013 Sat, Nov 10, 2007",
\r
139 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMy", "Oct 10 \\u2013 Nov 10, 2007",
\r
141 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMM", "Oct 10 \\u2013 Nov 10",
\r
143 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMy", "Oct\\u2013Nov 2007",
\r
145 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdMMM", "Wed, Oct 10 \\u2013 Sat, Nov 10",
\r
147 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdMy", "Wed, 10/10/07 \\u2013 Sat, 11/10/07",
\r
149 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMy", "10/10/07 \\u2013 11/10/07",
\r
151 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dM", "10/10 \\u2013 11/10",
\r
153 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "My", "10/07 \\u2013 11/07",
\r
155 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdM", "Wed, 10/10 \\u2013 Sat, 11/10",
\r
157 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "d", "10/10 \\u2013 11/10",
\r
159 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "Ed", "10 Wed \\u2013 10 Sat",
\r
161 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "y", "2007",
\r
163 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "M", "10\\u201311",
\r
165 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMM", "Oct\\u2013Nov",
\r
167 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMM", "October-November",
\r
169 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hm", "10/10/2007 10:10 AM \\u2013 11/10/2007 10:10 AM",
\r
171 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hmv", "10/10/2007 10:10 AM PT \\u2013 11/10/2007 10:10 AM PT",
\r
173 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hmz", "10/10/2007 10:10 AM PDT \\u2013 11/10/2007 10:10 AM PST",
\r
175 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "h", "10/10/2007 10 AM \\u2013 11/10/2007 10 AM",
\r
177 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hv", "10/10/2007 10 AM PT \\u2013 11/10/2007 10 AM PT",
\r
179 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hz", "10/10/2007 10 AM PDT \\u2013 11/10/2007 10 AM PST",
\r
181 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEddMMyyyy", "Wed, 10/10/07 \\u2013 Sat, 11/10/07",
\r
183 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EddMMy", "Wed, 10/10/07 \\u2013 Sat, 11/10/07",
\r
185 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hhmm", "10/10/2007 10:10 AM \\u2013 11/10/2007 10:10 AM",
\r
187 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hhmmzz", "10/10/2007 10:10 AM PDT \\u2013 11/10/2007 10:10 AM PST",
\r
189 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hms", "10/10/2007 10:10:10 AM \\u2013 11/10/2007 10:10:10 AM",
\r
191 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMMMy", "O 10 \\u2013 N 10, 2007",
\r
193 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEEdM", "W, 10/10 \\u2013 S, 11/10",
\r
195 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMMMy", "Saturday, November 10 \\u2013 Tuesday, November 20, 2007",
\r
197 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMMy", "November 10\\u201320, 2007",
\r
199 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMM", "November 10\\u201320",
\r
201 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMMy", "November 2007",
\r
203 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMMM", "Saturday, November 10 \\u2013 Tuesday, November 20",
\r
205 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMMMy", "Sat, Nov 10 \\u2013 Tue, Nov 20, 2007",
\r
208 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMM", "Nov 10\\u201320",
\r
210 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMy", "Nov 2007",
\r
212 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMMM", "Sat, Nov 10 \\u2013 Tue, Nov 20",
\r
214 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMy", "Sat, 11/10/07 \\u2013 Tue, 11/20/07",
\r
216 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMy", "11/10/07 \\u2013 11/20/07",
\r
218 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dM", "11/10 \\u2013 11/20",
\r
220 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "My", "11/2007",
\r
221 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdM", "Sat, 11/10 \\u2013 Tue, 11/20",
\r
223 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "d", "10\\u201320",
\r
224 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "Ed", "10 Sat \\u2013 20 Tue",
\r
226 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "M", "11",
\r
228 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMM", "Nov",
\r
230 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "hm", "11/10/2007 10:10 AM \\u2013 11/20/2007 10:10 AM",
\r
232 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "hmv", "11/10/2007 10:10 AM PT \\u2013 11/20/2007 10:10 AM PT",
\r
234 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "hmz", "11/10/2007 10:10 AM PST \\u2013 11/20/2007 10:10 AM PST",
\r
236 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "hz", "11/10/2007 10 AM PST \\u2013 11/20/2007 10 AM PST",
\r
238 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEddMMyyyy", "Sat, 11/10/07 \\u2013 Tue, 11/20/07",
\r
240 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EddMMy", "Sat, 11/10/07 \\u2013 Tue, 11/20/07",
\r
242 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "hhmm", "11/10/2007 10:10 AM \\u2013 11/20/2007 10:10 AM",
\r
244 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "hms", "11/10/2007 10:10:10 AM \\u2013 11/20/2007 10:10:10 AM",
\r
246 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMMMy", "N 10\\u201320, 2007",
\r
248 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEEdM", "S, 11/10 \\u2013 T, 11/20",
\r
250 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMMMy", "Wednesday, January 10, 2007",
\r
252 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMMy", "January 10, 2007",
\r
254 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMM", "January 10",
\r
256 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMMMy", "January 2007",
\r
258 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMMM", "Wednesday, January 10",
\r
261 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMy", "Jan 10, 2007",
\r
263 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMM", "Jan 10",
\r
265 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMMy", "Jan 2007",
\r
267 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EdMMM", "Wed, Jan 10",
\r
269 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EdMy", "Wed, 1/10/2007",
\r
271 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMy", "1/10/2007",
\r
273 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dM", "1/10",
\r
276 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EdM", "Wed, 1/10",
\r
278 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "d", "10",
\r
280 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "Ed", "10 Wed",
\r
282 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "y", "2007",
\r
285 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMM", "Jan",
\r
287 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMMM", "January",
\r
289 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hm", "10:00 AM \\u2013 2:10 PM",
\r
292 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hmz", "10:00 AM \\u2013 2:10 PM PST",
\r
294 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "h", "10 AM \\u2013 2 PM",
\r
296 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hv", "10 AM \\u2013 2 PM PT",
\r
298 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hz", "10 AM \\u2013 2 PM PST",
\r
300 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEddMMyyyy", "Wed, 01/10/2007",
\r
303 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hhmm", "10:00 AM \\u2013 2:10 PM",
\r
305 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hhmmzz", "10:00 AM \\u2013 2:10 PM PST",
\r
308 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMMMy", "J 10, 2007",
\r
310 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEEdM", "W, 1/10",
\r
312 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EEEEdMMMMy", "Wednesday, January 10, 2007",
\r
314 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMMMy", "January 10, 2007",
\r
317 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "MMMMy", "January 2007",
\r
320 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EdMMMy", "Wed, Jan 10, 2007",
\r
322 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMMy", "Jan 10, 2007",
\r
324 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMM", "Jan 10",
\r
327 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EdMMM", "Wed, Jan 10",
\r
329 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EdMy", "Wed, 1/10/2007",
\r
332 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dM", "1/10",
\r
335 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EdM", "Wed, 1/10",
\r
339 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "y", "2007",
\r
342 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "MMM", "Jan",
\r
345 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hm", "10:00\\u201310:20 AM",
\r
347 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmv", "10:00\\u201310:20 AM PT",
\r
350 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "h", "10 AM",
\r
353 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hz", "10 AM PST",
\r
356 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EddMMy", "Wed, 01/10/2007",
\r
358 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hhmm", "10:00\\u201310:20 AM",
\r
360 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hhmmzz", "10:00\\u201310:20 AM PST",
\r
362 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hms", "10:00:10 AM \\u2013 10:20:10 AM",
\r
364 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "dMMMM", "January 10",
\r
366 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EEEEdMMMM", "Wednesday, January 10",
\r
368 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EdMMMy", "Wed, Jan 10, 2007",
\r
370 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "dMMM", "Jan 10",
\r
372 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EdMMM", "Wed, Jan 10",
\r
373 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "dM", "1/10",
\r
375 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "My", "1/2007",
\r
377 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EdM", "Wed, 1/10",
\r
378 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "d", "10",
\r
380 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "Ed", "10 Wed",
\r
382 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "y", "2007",
\r
384 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "M", "1",
\r
386 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "MMM", "Jan",
\r
388 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "MMMM", "January",
\r
390 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hm", "10:10 AM",
\r
392 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmv", "10:10 AM PT",
\r
394 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmz", "10:10 AM PST",
\r
396 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "h", "10 AM",
\r
399 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hz", "10 AM PST",
\r
401 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hhmmzz", "10:10 AM PST",
\r
403 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hms", "10:10:10 AM",
\r
407 "zh", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEdMMMMy", "2007\\u5e7410\\u670810\\u65e5\\u661f\\u671f\\u4e09\\u81f32008\\u5e7410\\u670810\\u65e5\\u661f\\u671f\\u4e94",
\r
409 "zh", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hm", "2007\\u5e7410\\u670810\\u65e5 \\u4e0a\\u534810:10\\u20132008\\u5e7410\\u670810\\u65e5 \\u4e0a\\u534810:10",
\r
411 "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMMy", "2007\\u5e7410\\u670810\\u65e5\\u81f311\\u670810\\u65e5",
\r
413 "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMM", "10\\u670810\\u65e5\\u81f311\\u670810\\u65e5",
\r
415 "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMMy", "2007\\u5e7410\\u6708\\u81f311\\u6708",
\r
417 "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMMM", "10\\u670810\\u65e5\\u661f\\u671f\\u4e09\\u81f311\\u670810\\u65e5\\u661f\\u671f\\u516d",
\r
419 "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hmv", "2007\\u5e7410\\u670810\\u65e5 \\u4e0a\\u534810:10 \\u7f8e\\u56fd (\\u6d1b\\u6749\\u77f6)\\u20132007\\u5e7411\\u670810\\u65e5 \\u4e0a\\u534810:10 \\u7f8e\\u56fd (\\u6d1b\\u6749\\u77f6)",
\r
421 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMMMy", "2007\\u5e7411\\u670810\\u65e5\\u661f\\u671f\\u516d\\u81f320\\u65e5\\u661f\\u671f\\u4e8c",
\r
423 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMMy", "2007\\u5e7411\\u670810\\u65e5\\u81f320\\u65e5",
\r
425 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMM", "11\\u670810\\u65e5\\u81f320\\u65e5",
\r
427 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMMy", "2007\\u5E7411\\u6708", // (fixed expected result per ticket 6872<-6626)
\r
429 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMMM", "11\\u670810\\u65e5\\u661f\\u671f\\u516d\\u81f320\\u65e5\\u661f\\u671f\\u4e8c",
\r
431 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMMM", "11\\u670810\\u65e5\\u5468\\u516d\\u81f320\\u65e5\\u5468\\u4e8c",
\r
433 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMy", "07-11-10\\u5468\\u516d\\u81f307-11-20\\u5468\\u4e8c",
\r
435 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMy", "07-11-10\\u81f307-11-20",
\r
437 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dM", "11-10\\u81f311-20",
\r
439 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "My", "2007-11",
\r
440 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdM", "11-10\\u5468\\u516d\\u81f311-20\\u5468\\u4e8c",
\r
442 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "d", "10\\u65e5\\u81f320\\u65e5",
\r
444 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "y", "2007",
\r
446 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "M", "11",
\r
448 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMM", "\\u5341\\u4E00\\u6708", // (fixed expected result per ticket 6872<-6626 and others)
\r
450 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMM", "\\u5341\\u4E00\\u6708", // (fixed expected result per ticket 6872<-6626 and others)
\r
452 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "hmz", "2007\\u5e7411\\u670810\\u65e5 \\u4e0a\\u534810:10 \\u683c\\u6797\\u5c3c\\u6cbb\\u6807\\u51c6\\u65f6\\u95f4-0800\\u20132007\\u5e7411\\u670820\\u65e5 \\u4e0a\\u534810:10 \\u683c\\u6797\\u5c3c\\u6cbb\\u6807\\u51c6\\u65f6\\u95f4-0800",
\r
454 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "h", "2007\\u5e7411\\u670810\\u65e5 \\u4e0a\\u534810\\u20132007\\u5e7411\\u670820\\u65e5 \\u4e0a\\u534810",
\r
456 "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMMMy", "2007\\u5e741\\u670810\\u65e5\\u661f\\u671f\\u4e09", // (fixed expected result per ticket 6872<-6626)
\r
458 "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hm", "\\u4e0a\\u534810:00\\u81f3\\u4e0b\\u53482:10",
\r
460 "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hmv", "\\u7f8e\\u56fd (\\u6d1b\\u6749\\u77f6)\\u4e0a\\u534810:00\\u81f3\\u4e0b\\u53482:10",
\r
462 "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hmz", "\\u683c\\u6797\\u5c3c\\u6cbb\\u6807\\u51c6\\u65f6\\u95f4-0800\\u4e0a\\u534810:00\\u81f3\\u4e0b\\u53482:10",
\r
464 "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "h", "\\u4e0a\\u534810\\u81f3\\u4e0b\\u53482\\u65f6",
\r
466 "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hv", "\\u7f8e\\u56fd (\\u6d1b\\u6749\\u77f6)\\u4e0a\\u534810\\u81f3\\u4e0b\\u53482\\u65f6",
\r
468 "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hz", "\\u683c\\u6797\\u5c3c\\u6cbb\\u6807\\u51c6\\u65f6\\u95f4-0800\\u4e0a\\u534810\\u81f3\\u4e0b\\u53482\\u65f6",
\r
470 "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMMM", "1\\u670810\\u65e5", // (fixed expected result per ticket 6872<-6626)
\r
472 "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hm", "\\u4e0a\\u534810:00\\u81f310:20",
\r
474 "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmv", "\\u7f8e\\u56fd (\\u6d1b\\u6749\\u77f6)\\u4e0a\\u534810:00\\u81f310:20",
\r
476 "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "h", "\\u4e0a\\u534810",
\r
478 "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hz", "\\u4e0a\\u534810 \\u683c\\u6797\\u5c3c\\u6cbb\\u6807\\u51c6\\u65f6\\u95f4-0800",
\r
480 "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EEEEdMMMMy", "2007\\u5e741\\u670810\\u65e5\\u661f\\u671f\\u4e09", // (fixed expected result per ticket 6872<-6626)
\r
482 "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hm", "\\u4e0a\\u534810:10",
\r
484 "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "h", "\\u4e0a\\u534810",
\r
486 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEdMMMy", "Mittwoch, 10. Okt 2007 - Freitag, 10. Okt 2008",
\r
488 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMy", "10. Okt 2007 - 10. Okt 2008",
\r
490 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMM", "10. Okt 2007 - 10. Okt 2008",
\r
492 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMMy", "Okt 2007 - Okt 2008",
\r
494 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEdMMM", "Mi., 10. Okt 2007 - Fr., 10. Okt 2008",
\r
496 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdMy", "Mi., 10.10.07 - Fr., 10.10.08",
\r
498 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMy", "10.10.07 - 10.10.08",
\r
500 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dM", "10.10.07 - 10.10.08",
\r
502 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "My", "10.07 - 10.08",
\r
504 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdM", "Mi., 10.10.07 - Fr., 10.10.08",
\r
506 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "d", "10.10.07 - 10.10.08",
\r
508 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "y", "2007-2008",
\r
510 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "M", "10.07 - 10.08",
\r
512 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMM", "Okt 2007 - Okt 2008",
\r
514 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hm", "10.10.2007 10:10 vorm. - 10.10.2008 10:10 vorm.",
\r
516 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "jm", "10.10.2007 10:10 - 10.10.2008 10:10",
\r
518 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMMy", "Mittwoch, 10. Okt - Samstag, 10. Nov 2007",
\r
520 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMy", "10. Okt - 10. Nov 2007",
\r
522 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMM", "10. Okt - 10. Nov",
\r
524 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMy", "Okt-Nov 2007",
\r
526 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMM", "Mittwoch, 10. Okt - Samstag, 10. Nov",
\r
528 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdMy", "Mi., 10.10.07 - Sa., 10.11.07",
\r
530 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dM", "10.10. - 10.11.",
\r
532 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "My", "10.07 - 11.07",
\r
534 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdM", "Mi., 10.10. - Sa., 10.11.",
\r
536 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "d", "10.10. - 10.11.",
\r
539 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "M", "10.-11.",
\r
541 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMM", "Okt-Nov",
\r
543 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hmv", "10.10.2007 10:10 vorm. Vereinigte Staaten (Los Angeles) - 10.11.2007 10:10 vorm. Vereinigte Staaten (Los Angeles)",
\r
545 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "jmv", "10.10.2007 10:10 Vereinigte Staaten (Los Angeles) - 10.11.2007 10:10 Vereinigte Staaten (Los Angeles)",
\r
547 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hms", "10.10.2007 10:10:10 vorm. - 10.11.2007 10:10:10 vorm.",
\r
549 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMMy", "Samstag, 10. - Dienstag, 20. Nov 2007",
\r
551 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMy", "10.-20. Nov 2007",
\r
553 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMM", "10.-20. Nov",
\r
555 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMy", "Nov 2007",
\r
557 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMM", "Samstag, 10. - Dienstag, 20. Nov",
\r
559 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMy", "Sa., 10.11.07 - Di., 20.11.07",
\r
561 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMy", "10.11.07 - 20.11.07",
\r
563 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dM", "10.11. - 20.11.",
\r
565 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "My", "11.2007",
\r
567 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdM", "Sa., 10.11. - Di., 20.11.",
\r
569 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "d", "10.-20.",
\r
571 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "y", "2007",
\r
573 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "M", "11",
\r
575 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "hmv", "10.11.2007 10:10 vorm. Vereinigte Staaten (Los Angeles) - 20.11.2007 10:10 vorm. Vereinigte Staaten (Los Angeles)",
\r
577 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "jmv", "10.11.2007 10:10 Vereinigte Staaten (Los Angeles) - 20.11.2007 10:10 Vereinigte Staaten (Los Angeles)",
\r
579 "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMMy", "Mittwoch, 10. Jan 2007",
\r
581 "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMy", "10. Jan 2007",
\r
583 "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMM", "10. Jan",
\r
585 "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMMy", "Jan 2007",
\r
587 "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMM", "Mittwoch 10. Jan",
\r
589 "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hmz", "10:00 vorm. - 2:10 nachm. GMT-08:00",
\r
591 "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "h", "10 vorm. - 2 nachm.",
\r
593 "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EEEEdMMM", "Mittwoch 10. Jan",
\r
595 "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hm", "10:00-10:20 vorm.",
\r
597 "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmv", "10:00-10:20 vorm. Vereinigte Staaten (Los Angeles)",
\r
599 "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmz", "10:00-10:20 vorm. GMT-08:00",
\r
601 "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "h", "10 vorm.",
\r
603 "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hv", "10 vorm. Vereinigte Staaten (Los Angeles)",
\r
605 "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hz", "10 vorm. GMT-08:00",
\r
607 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EEEEdMMMy", "Mittwoch, 10. Jan 2007",
\r
609 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hm", "10:10 vorm.",
\r
611 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "jm", "10:10",
\r
613 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmv", "10:10 vorm. Vereinigte Staaten (Los Angeles)",
\r
615 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "jmv", "10:10 Vereinigte Staaten (Los Angeles)",
\r
617 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmz", "10:10 vorm. GMT-08:00",
\r
619 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "jmz", "10:10 GMT-08:00",
\r
621 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "h", "10 vorm.",
\r
623 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hv", "10 vorm. Vereinigte Staaten (Los Angeles)",
\r
625 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hz", "10 vorm. GMT-08:00",
\r
627 // Thai (default calendar buddhist)
\r
629 "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "EEEEdMMMy", "\\u0E27\\u0E31\\u0E19\\u0E1E\\u0E38\\u0E18 10 \\u0E15.\\u0E04. 2550 \\u2013 \\u0E27\\u0E31\\u0E19\\u0E28\\u0E38\\u0E01\\u0E23\\u0E4C 10 \\u0E15.\\u0E04. 2551",
\r
632 "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "dMMM", "10 \\u0E15.\\u0E04. 2550 \\u2013 10 \\u0E15.\\u0E04. 2551",
\r
634 "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "MMMy", "\\u0E15.\\u0E04. 2550 - \\u0E15.\\u0E04. 2551",
\r
637 "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "EdMy", "\\u0E1E. 10/10/50 \\u2013 \\u0E28. 10/10/51",
\r
639 "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "dMy", "10/10/50 \\u2013 10/10/51",
\r
642 "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "My", "10/50 \\u2013 10/51",
\r
644 "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "EdM", "\\u0E1E. 10/10/50 \\u2013 \\u0E28. 10/10/51",
\r
647 "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "y", "2550-2551",
\r
649 "th", "2550 10 10 10:10:10", "2551 10 10 10:10:10", "M", "10/50 \\u2013 10/51",
\r
652 "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "EEEEdMMMy", "\\u0E27\\u0E31\\u0E19\\u0E1E\\u0E38\\u0E18 10 \\u0E15.\\u0E04. \\u2013 \\u0E27\\u0E31\\u0E19\\u0E40\\u0E2A\\u0E32\\u0E23\\u0E4C 10 \\u0E1E.\\u0E22. 2550",
\r
655 "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "dMMM", "10 \\u0E15.\\u0E04. \\u2013 10 \\u0E1E.\\u0E22.",
\r
657 "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "MMMy", "\\u0E15.\\u0E04.-\\u0E1E.\\u0E22. 2550",
\r
659 "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "dM", "10/10 - 10/11",
\r
661 "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "My", "10/50 \\u2013 11/50",
\r
664 "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "d", "10/10 - 10/11",
\r
666 "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "y", "2550",
\r
669 "th", "2550 10 10 10:10:10", "2550 11 10 10:10:10", "MMM", "\\u0E15.\\u0E04.-\\u0E1E.\\u0E22.",
\r
672 expect(DATA, DATA.length);
\r
676 private void expect(String[] data, int data_length) {
\r
678 while (i<data_length) {
\r
679 String locName = data[i++];
\r
680 ULocale loc = new ULocale(locName);
\r
681 SimpleDateFormat ref = new SimpleDateFormat(data[0], loc);
\r
683 String datestr = data[i++];
\r
684 String datestr_2 = data[i++];
\r
687 date = ref.parse(datestr);
\r
688 date_2 = ref.parse(datestr_2);
\r
689 } catch ( ParseException e ) {
\r
690 errln("parse exception" + e);
\r
693 DateInterval dtitv = new DateInterval(date.getTime(),
\r
695 String oneSkeleton = data[i++];
\r
696 DateIntervalFormat dtitvfmt = DateIntervalFormat.getInstance(
\r
698 String expected = data[i++];
\r
699 String formatted = dtitvfmt.format(dtitv);
\r
700 if ( !formatted.equals(Utility.unescape(expected)) ) {
\r
701 errln("\"" + locName + "\\" + oneSkeleton + "\\" + datestr + "\\" + datestr_2 + "\"\t expected: " + expected +"\tgot: " + formatted + "\n");
\r
708 * Test format using user defined DateIntervalInfo
\r
710 public void TestFormatUserDII() {
\r
711 // first item is date pattern
\r
712 // followed by a group of locale/from_data/to_data/interval_data
\r
714 "yyyy MM dd HH:mm:ss",
\r
715 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "Oct 10, 2007 --- Oct 10, 2008",
\r
717 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 Oct 10 - Nov 2007",
\r
719 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "Nov 10, 2007 --- Nov 20, 2007",
\r
721 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "Jan 10, 2007",
\r
723 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "Jan 10, 2007",
\r
725 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "Jan 10, 2007",
\r
727 "zh", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "2007\\u5e7410\\u670810\\u65e5 --- 2008\\u5e7410\\u670810\\u65e5",
\r
730 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "2007\\u5e7411\\u670810\\u65e5 --- 2007\\u5e7411\\u670820\\u65e5",
\r
732 "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "2007\\u5e741\\u670810\\u65e5", // (fixed expected result per ticket 6872<-6626)
\r
734 "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "2007\\u5e741\\u670810\\u65e5", // (fixed expected result per ticket 6872<-6626)
\r
736 "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "2007\\u5e741\\u670810\\u65e5", // (fixed expected result per ticket 6872<-6626)
\r
738 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "10. Okt 2007 --- 10. Okt 2008",
\r
740 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 Okt 10 - Nov 2007",
\r
742 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "10. Nov 2007 --- 20. Nov 2007",
\r
744 "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "10. Jan 2007",
\r
746 "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "10. Jan 2007",
\r
748 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "10. Jan 2007",
\r
750 "es", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "10 de oct de 2007 --- 10 de oct de 2008",
\r
752 "es", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 oct 10 - nov 2007",
\r
754 "es", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "10 de nov de 2007 --- 20 de nov de 2007",
\r
756 "es", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "10 de ene de 2007",
\r
758 "es", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "10 de ene de 2007",
\r
760 "es", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "10 de ene de 2007",
\r
762 expectUserDII(DATA, DATA.length);
\r
766 private void expectUserDII(String[] data, int data_length) {
\r
768 while (i<data_length) {
\r
769 String locName = data[i++];
\r
770 ULocale loc = new ULocale(locName);
\r
771 SimpleDateFormat ref = new SimpleDateFormat(data[0], loc);
\r
773 String datestr = data[i++];
\r
774 String datestr_2 = data[i++];
\r
777 date = ref.parse(datestr);
\r
778 date_2 = ref.parse(datestr_2);
\r
779 } catch ( ParseException e ) {
\r
780 errln("parse exception" + e);
\r
783 DateInterval dtitv = new DateInterval(date.getTime(),
\r
786 DateIntervalInfo dtitvinf = new DateIntervalInfo();
\r
787 dtitvinf.setFallbackIntervalPattern("{0} --- {1}");
\r
788 dtitvinf.setIntervalPattern("yMMMd", Calendar.MONTH, "yyyy MMM d - MMM y");
\r
789 dtitvinf.setIntervalPattern("yMMMd", Calendar.HOUR_OF_DAY, "yyyy MMM d HH:mm - HH:mm");
\r
790 DateIntervalFormat dtitvfmt = DateIntervalFormat.getInstance(
\r
791 DateFormat.YEAR_ABBR_MONTH_DAY,
\r
793 String expected = data[i++];
\r
794 String formatted = dtitvfmt.format(dtitv);
\r
795 if ( !formatted.equals(Utility.unescape(expected)) ) {
\r
796 errln("userDII: \"" + locName + "\\" + datestr + "\\" + datestr_2 + "\"\t expected: " + expected +"\tgot: " + formatted + "\n");
\r
804 * Test format using user defined DateIntervalInfo
\r
806 public void TestFormatCLDR() {
\r
807 // first item is date pattern
\r
808 // followed by a group of locale/from_data/to_data/interval_data
\r
810 "yyyy MM dd HH:mm:ss",
\r
811 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "all diff",
\r
813 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 diff Oct 10 - Nov 2007",
\r
815 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "2007 Nov 10 ~ 20",
\r
817 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "Jan 10, 2007",
\r
819 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "Jan 10, 2007",
\r
821 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "Jan 10, 2007",
\r
823 "zh", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "all diff",
\r
825 "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 diff 10\\u6708 10 - 11\\u6708 2007",
\r
827 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "2007 11\\u6708 10 ~ 20",
\r
829 "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "2007\u5E741\\u670810\u65E5", // (fixed expected result per ticket 6872<-6626)
\r
831 "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "2007\u5E741\\u670810\u65E5", // (fixed expected result per ticket 6872<-6626)
\r
833 "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "2007\u5E741\\u670810\u65E5", // (fixed expected result per ticket 6872<-6626)
\r
835 expectUserCLDR(DATA, DATA.length);
\r
839 private void expectUserCLDR(String[] data, int data_length) {
\r
841 while (i<data_length) {
\r
842 String locName = data[i++];
\r
843 ULocale loc = new ULocale(locName);
\r
844 SimpleDateFormat ref = new SimpleDateFormat(data[0], loc);
\r
846 String datestr = data[i++];
\r
847 String datestr_2 = data[i++];
\r
850 date = ref.parse(datestr);
\r
851 date_2 = ref.parse(datestr_2);
\r
852 } catch ( ParseException e ) {
\r
853 errln("parse exception" + e);
\r
856 DateInterval dtitv = new DateInterval(date.getTime(),
\r
859 DateIntervalFormat dtitvfmt = DateIntervalFormat.getInstance("yyyyMMMdd", loc);
\r
860 //DateIntervalFormat dtitvfmt = DateIntervalFormat.getInstance("yMd");
\r
861 //SimpleDateFormat dtfmt = new SimpleDateFormat("yyyy 'year' MMM 'month' dd 'day'", loc);
\r
862 //dtitvfmt.setDateFormat(dtfmt);
\r
863 DateIntervalInfo dtitvinf = new DateIntervalInfo();
\r
864 dtitvinf.setFallbackIntervalPattern("{0} --- {1}");
\r
865 dtitvinf.setIntervalPattern("yMMMd", Calendar.YEAR, "'all diff'");
\r
866 dtitvinf.setIntervalPattern("yMMMd", Calendar.MONTH, "yyyy 'diff' MMM d - MMM y");
\r
867 dtitvinf.setIntervalPattern("yMMMd", Calendar.DATE, "yyyy MMM d ~ d");
\r
868 dtitvinf.setIntervalPattern("yMMMd", Calendar.HOUR_OF_DAY, "yyyy MMMd HH:mm ~ HH:mm");
\r
869 dtitvfmt.setDateIntervalInfo(dtitvinf);
\r
870 FieldPosition pos = new FieldPosition(0);
\r
871 StringBuffer str = new StringBuffer("");
\r
872 DateFormat dtfmt = dtitvfmt.getDateFormat();
\r
873 Calendar fromCalendar = (Calendar) dtfmt.getCalendar().clone();
\r
874 Calendar toCalendar = (Calendar) dtfmt.getCalendar().clone();
\r
875 fromCalendar.setTimeInMillis(dtitv.getFromDate());
\r
876 toCalendar.setTimeInMillis(dtitv.getToDate());
\r
877 dtitvfmt.format(fromCalendar, toCalendar, str, pos);
\r
879 String expected = data[i++];
\r
880 String formatted = dtitvfmt.format(dtitv).toString();
\r
881 if ( !formatted.equals(Utility.unescape(expected)) ) {
\r
882 errln("CLDR: \"" + locName + "\\" + datestr + "\\" + datestr_2 + "\"\t expected: " + expected +"\tgot: " + formatted + "\n");
\r
891 public void TestStress() {
\r
892 if (getInclusion() <= 5) {
\r
893 logln("INFO: Skipping test");
\r
898 // The 1st is the format pattern,
\r
899 // Next are pairs in which the 1st in the pair is the earlier date
\r
900 // and the 2nd in the pair is the later date
\r
902 "yyyy MM dd HH:mm:ss",
\r
903 "2007 10 10 10:10:10", "2008 10 10 10:10:10",
\r
904 "2007 10 10 10:10:10", "2007 11 10 10:10:10",
\r
905 "2007 11 10 10:10:10", "2007 11 20 10:10:10",
\r
906 "2007 01 10 10:00:10", "2007 01 10 14:10:10",
\r
907 "2007 01 10 10:00:10", "2007 01 10 10:20:10",
\r
908 "2007 01 10 10:10:10", "2007 01 10 10:10:20",
\r
912 String[][] testLocale = {
\r
955 for ( localeIndex = 0; localeIndex < testLocale.length; ++localeIndex) {
\r
956 stress(DATA, DATA.length, new Locale(testLocale[localeIndex][0],
\r
957 testLocale[localeIndex][1], testLocale[localeIndex][2]),
\r
958 testLocale[localeIndex][0]+testLocale[localeIndex][1]);
\r
962 private void stress(String[] data, int data_length, Locale loc, String locName) {
\r
963 String[] skeleton = {
\r
991 "EEddMMyyyy", // following could be normalized
\r
995 "hms", // following could not be normalized
\r
1002 SimpleDateFormat ref = new SimpleDateFormat(data[i++], loc);
\r
1004 while (i<data_length) {
\r
1006 String datestr = data[i++];
\r
1007 String datestr_2 = data[i++];
\r
1011 date = ref.parse(datestr);
\r
1012 date_2 = ref.parse(datestr_2);
\r
1013 } catch ( ParseException e ) {
\r
1014 errln("parse exception" + e);
\r
1017 DateInterval dtitv = new DateInterval(date.getTime(), date_2.getTime());
\r
1019 for ( int skeletonIndex = 0;
\r
1020 skeletonIndex < skeleton.length;
\r
1021 ++skeletonIndex ) {
\r
1022 String oneSkeleton = skeleton[skeletonIndex];
\r
1023 // need special handle of "Thai" since the default calendar
\r
1024 // of "Thai" is "Budd", not "Gregorian".
\r
1025 DateIntervalFormat dtitvfmt = DateIntervalFormat.getInstance(oneSkeleton, loc);
\r
1027 if ( locName.equals("th") ) {
\r
1028 // reset calendar to be Gregorian
\r
1029 GregorianCalendar gregCal = new GregorianCalendar(loc);
\r
1030 DateFormat dformat = dtitvfmt.getDateFormat();
\r
1031 DateFormat newOne = (DateFormat)dformat.clone();
\r
1032 newOne.setCalendar(gregCal);
\r
1033 dtitvfmt.setDateFormat(newOne);
\r
1036 dtitvfmt.format(dtitv);
\r
1040 // test interval format by algorithm
\r
1041 for ( int style = DateFormat.FULL; style < 4; ++style ) {
\r
1042 SimpleDateFormat dtfmt = (SimpleDateFormat) DateFormat.getDateInstance(style, loc);
\r
1043 FieldPosition pos = new FieldPosition(0);
\r
1044 StringBuffer str = new StringBuffer("");
\r
1045 Calendar fromCalendar = (Calendar) dtfmt.getCalendar().clone();
\r
1046 Calendar toCalendar = (Calendar) dtfmt.getCalendar().clone();
\r
1047 fromCalendar.setTimeInMillis(dtitv.getFromDate());
\r
1048 toCalendar.setTimeInMillis(dtitv.getToDate());
\r
1049 dtfmt.intervalFormatByAlgorithm(fromCalendar, toCalendar, str, pos);
\r
1055 * Ticket#6396 DateIntervalInfo of ICU4J 4.0d3 throw NullPointerException
\r
1057 public void TestT6396() {
\r
1058 DateIntervalInfo dii = new DateIntervalInfo(new ULocale("th_TH"));
\r
1060 // ticket#6396 reported toString() throws NullPointerException
\r
1061 String diiStr = dii.toString();
\r
1062 logln("new DateIntervalInfo(new ULocale(\"th_TH\")).toString() - " + diiStr);
\r
1064 // equals also had the similar problem
\r
1065 DateIntervalInfo dii1 = (DateIntervalInfo)dii.clone();
\r
1066 if (!dii.equals(dii1)) {
\r
1067 errln("FAIL: Cloned DateIntervalInfo is not equal to the source");
\r
1069 } catch (Exception e) {
\r
1070 errln("FAIL: Exception - " + e.getClass().getName());
\r
1074 /* Tests the method
\r
1075 * public boolean equals(Object a)
\r
1077 public void TestDateIntervalInfoEquals(){
\r
1078 // Tests when "if ( a instanceof PatternInfo )" is false
\r
1079 DateIntervalInfo diia = new DateIntervalInfo();
\r
1080 if(diia.equals("dummy")){
\r
1081 errln("DateIntervalInfo.equals(Object a) was suppose to return " +
\r
1082 "false for a String object.");
\r
1084 if(diia.equals(0)){
\r
1085 errln("DateIntervalInfo.equals(Object a) was suppose to return " +
\r
1086 "false for an Integer object.");
\r
1088 if(diia.equals(0.0)){
\r
1089 errln("DateIntervalInfo.equals(Object a) was suppose to return " +
\r
1090 "false for an Integer object.");
\r
1092 if(diia.equals(new Object())){
\r
1093 errln("DateIntervalInfo.equals(Object a) was suppose to return " +
\r
1094 "false for an Integer object.");
\r
1098 /* Tests the method
\r
1099 * public Object cloneAsThawed()
\r
1101 public void TestCloseAsThawed(){
\r
1102 DateIntervalInfo dii = new DateIntervalInfo();
\r
1104 dii.cloneAsThawed();
\r
1105 } catch(Exception e){
\r
1106 errln("DateIntervalInfo.closeAsThawed() was not suppose to return " +
\r
1111 /* Tests the method
\r
1112 * public boolean isFrozen()
\r
1114 public void TestIsFrozen(){
\r
1115 DateIntervalInfo dii = new DateIntervalInfo();
\r
1116 if(dii.isFrozen() != false){
\r
1117 errln("DateIntervalInfo.isFrozen() is suppose to return false.");
\r
1121 if(dii.isFrozen() != true){
\r
1122 errln("DateIntervalInfo.isFrozen() is suppose to return true.");
\r
1126 /* Tests the method
\r
1127 * public boolean clone()
\r
1129 public void TestClone(){
\r
1130 DateIntervalInfo dii = new DateIntervalInfo(new ULocale("en_US"));
\r
1131 DateIntervalInfo dii_clone = (DateIntervalInfo) dii.clone();
\r
1132 dii_clone.freeze();
\r
1134 // Tests when "if ( frozen )" is true
\r
1135 if(!dii.equals(dii_clone)){
\r
1136 errln("DateIntervalInfo.clone() is suppose to return true for " +
\r
1137 "an original DateIntervalInfo object and a clone of the " +
\r
1138 "original DateIntervalInfo object.");
\r
1142 /* Tests the method
\r
1143 * public void setFallbackIntervalPattern(String fallbackPattern)
\r
1145 public void TestSetFallbackIntervalPattern(){
\r
1146 DateIntervalInfo dii = new DateIntervalInfo(new ULocale("en_US"));
\r
1147 // Tests when "if ( frozen )" is true
\r
1150 dii.setFallbackIntervalPattern("");
\r
1151 errln("DateIntervalInfo.setFallbackIntervalPattern(String fallbackPattern) " +
\r
1152 "was suppose to return an exception for a frozen object.");
\r
1153 } catch (Exception e){}
\r
1155 // Tests when "if ( firstPatternIndex == -1 || secondPatternIndex == -1 )" is true
\r
1156 dii = (DateIntervalInfo) dii.cloneAsThawed();
\r
1158 dii.setFallbackIntervalPattern("");
\r
1159 errln("DateIntervalInfo.setFallbackIntervalPattern(String fallbackPattern) " +
\r
1160 "was suppose to return an exception for a string object of ''.");
\r
1161 } catch(Exception e){}
\r
1164 dii.setFallbackIntervalPattern("0");
\r
1165 errln("DateIntervalInfo.setFallbackIntervalPattern(String fallbackPattern) " +
\r
1166 "was suppose to return an exception for a string object of 0.");
\r
1167 } catch(Exception e){}
\r
1169 // Tests when "if ( firstPatternIndex > secondPatternIndex )" is true
\r
1170 dii.setFallbackIntervalPattern("{1}{0}");
\r
1171 if(dii.getDefaultOrder() != true)
\r
1172 errln("DateIntervalInfo.setFallbackIntervalPattern(String fallbackPattern) " +
\r
1173 "was suppose to change the variable 'fFirstDateInPtnIsLaterDate' " +
\r
1177 /* Tests the method
\r
1178 * public PatternInfo getIntervalPattern(String skeleton, int field)
\r
1180 public void TestGetIntervalPattern(){
\r
1181 // Tests when "if ( field > MINIMUM_SUPPORTED_CALENDAR_FIELD )" is true
\r
1182 // MINIMUM_SUPPORTED_CALENDAR_FIELD = Calendar.MINUTE;
\r
1183 DateIntervalInfo dii = new DateIntervalInfo();
\r
1185 dii.getIntervalPattern("", Calendar.MINUTE+1);
\r
1186 errln("DateIntervalInfo.getIntervalPattern(String,int) was suppose " +
\r
1187 "to return an exception for the 'int field' parameter " +
\r
1188 "when it exceeds MINIMUM_SUPPORTED_CALENDAR_FIELD.");
\r
1189 } catch(Exception e){}
\r
1192 /* Tests the method
\r
1193 * public void setIntervalPattern(String skeleton, int lrgDiffCalUnit, String intervalPattern)
\r
1195 public void TestSetIntervalPattern(){
\r
1196 DateIntervalInfo dii = new DateIntervalInfo();
\r
1197 // Tests when "if ( frozen )" is true
\r
1200 dii.setIntervalPattern("", 0, "");
\r
1201 errln("DateIntervalInfo.setIntervalPattern(String,int,String) " +
\r
1202 "was suppose to return an exception when the " +
\r
1203 "DateIntervalInfo object is frozen.");
\r
1204 } catch(Exception e){}
\r
1206 // Tests when "if ( lrgDiffCalUnit > MINIMUM_SUPPORTED_CALENDAR_FIELD )" is true
\r
1207 // MINIMUM_SUPPORTED_CALENDAR_FIELD = Calendar.MINUTE;
\r
1209 dii = (DateIntervalInfo) dii.cloneAsThawed();
\r
1210 dii.setIntervalPattern("", Calendar.MINUTE+1, "");
\r
1211 errln("DateIntervalInfo.setIntervalPattern(String,int,String) " +
\r
1212 "was suppose to return an exception when the " +
\r
1213 "variable 'lrgDiffCalUnit' is greater than " +
\r
1214 "MINIMUM_SUPPORTED_CALENDAR_FIELD.");
\r
1215 } catch(Exception e){}
\r
1218 /* Tests the method
\r
1219 * public int hashCode()
\r
1221 public void TestHashCode(){
\r
1223 // "int hash = fIntervalPatternFirstPart != null ? fIntervalPatternFirstPart.hashCode() : 0;"
\r
1225 PatternInfo dp = new PatternInfo(null, null, false);
\r
1226 if(dp.hashCode() != 0){
\r
1227 errln("PatternInfo.hashCode() was suppose to return 0 for a null " +
\r
1228 "paramter in the constructor.");
\r
1232 /* Tests the method
\r
1233 * public boolean equals(Object a)
\r
1236 public void TestPattternInfoEquals(){
\r
1237 // Tests when "if ( a instanceof PatternInfo )" is false
\r
1238 PatternInfo pi = new PatternInfo("","", false);
\r
1239 if(pi.equals(new Object())){
\r
1240 errln("PatternInfo.equals(Object) is suppose to return false " +
\r
1241 "when it is not an instance of PatternInfo.");
\r
1243 if(pi.equals("")){
\r
1244 errln("PatternInfo.equals(Object) is suppose to return false " +
\r
1245 "when it is not an instance of PatternInfo.");
\r
1248 errln("PatternInfo.equals(Object) is suppose to return false " +
\r
1249 "when it is not an instance of PatternInfo.");
\r
1251 if(pi.equals(0.0)){
\r
1252 errln("PatternInfo.equals(Object) is suppose to return false " +
\r
1253 "when it is not an instance of PatternInfo.");
\r