2 *******************************************************************************
\r
3 * Copyright (C) 2001-2009, 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.util.Calendar;
\r
26 import com.ibm.icu.util.DateInterval;
\r
27 import com.ibm.icu.util.ULocale;
\r
29 public class DateIntervalFormatTest extends com.ibm.icu.dev.test.TestFmwk {
\r
31 public static void main(String[] args) throws Exception {
\r
32 new DateIntervalFormatTest().run(args);
\r
39 public void testFormat() {
\r
40 // first item is date pattern
\r
41 // followed by a group of locale/from_data/to_data/skeleton/interval_data
\r
43 "yyyy MM dd HH:mm:ss",
\r
45 "root", "2007 11 10 10:10:10", "2007 12 10 10:10:10", "yM", "2007-11 \\u2013 12",
\r
47 // test 'H' and 'h', using availableFormat in fallback
\r
48 "en", "2007 11 10 10:10:10", "2007 11 10 15:10:10", "Hms", "10:10:10 \\u2013 15:10:10",
\r
49 "en", "2007 11 10 10:10:10", "2007 11 10 15:10:10", "hms", "10:10:10 AM \\u2013 3:10:10 PM",
\r
51 // test skeleton with both date and time
\r
52 "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
54 "en", "2007 11 10 10:10:10", "2007 11 10 11:10:10", "dMMMyhm", "Nov 10, 2007 10:10\\u201311:10 AM",
\r
56 "en", "2007 11 10 10:10:10", "2007 11 10 11:10:10", "hms", "10:10:10 AM \\u2013 11:10:10 AM",
\r
58 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEdMMMMy", "Wednesday, October 10, 2007 \\u2013 Friday, October 10, 2008",
\r
60 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMMy", "October 10, 2007 \\u2013 October 10, 2008",
\r
62 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMM", "October 10, 2007 \\u2013 October 10, 2008",
\r
64 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMMMy", "October 2007 \\u2013 October 2008",
\r
66 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEdMMMM", "Wednesday, October 10, 2007 \\u2013 Friday, October 10, 2008",
\r
68 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdMMMy", "Wed, Oct 10, 2007 \\u2013 Fri, Oct 10, 2008",
\r
70 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMy", "Oct 10, 2007 \\u2013 Oct 10, 2008",
\r
72 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMM", "Oct 10, 2007 \\u2013 Oct 10, 2008",
\r
74 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMMy", "Oct 2007 \\u2013 Oct 2008",
\r
76 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdMMM", "Wed, Oct 10, 2007 \\u2013 Fri, Oct 10, 2008",
\r
78 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdMy", "Wed, 10/10/07 \\u2013 Fri, 10/10/08",
\r
80 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMy", "10/10/07 \\u2013 10/10/08",
\r
82 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dM", "10/10/07 \\u2013 10/10/08",
\r
84 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "My", "10/07 \\u2013 10/08",
\r
86 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdM", "Wed, 10/10/07 \\u2013 Fri, 10/10/08",
\r
88 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "d", "10/10/07 \\u2013 10/10/08",
\r
90 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "Ed", "10 Wed \\u2013 10 Fri",
\r
92 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "y", "2007\\u20132008",
\r
94 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "M", "10/07 \\u2013 10/08",
\r
96 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMM", "Oct 2007 \\u2013 Oct 2008",
\r
98 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMMM", "October 2007 \\u2013 October 2008",
\r
100 "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
102 "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
104 "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
106 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "h", "10/10/2007 10 \\u2013 10/10/2008 10",
\r
108 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hv", "10/10/2007 PT (Hour: 10) \\u2013 10/10/2008 PT (Hour: 10)",
\r
110 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "hz", "10/10/2007 PDT (Hour: 10) \\u2013 10/10/2008 PDT (Hour: 10)",
\r
112 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEddMMyyyy", "Wed, 10/10/07 \\u2013 Fri, 10/10/08",
\r
114 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EddMMy", "Wed, 10/10/07 \\u2013 Fri, 10/10/08",
\r
116 "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
118 "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
120 "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
122 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMMMy", "O 10, 2007 \\u2013 O 10, 2008",
\r
124 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEEdM", "W, 10/10/07 \\u2013 F, 10/10/08",
\r
126 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMMMy", "Wednesday, October 10 \\u2013 Saturday, November 10, 2007",
\r
128 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMMy", "October 10 \\u2013 November 10, 2007",
\r
130 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMM", "October 10 \\u2013 November 10",
\r
132 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMMy", "October\\u2013November 2007",
\r
134 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMMM", "Wednesday, October 10 \\u2013 Saturday, November 10",
\r
136 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdMMMy", "Wed, Oct 10 \\u2013 Sat, Nov 10, 2007",
\r
138 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMy", "Oct 10 \\u2013 Nov 10, 2007",
\r
140 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMM", "Oct 10 \\u2013 Nov 10",
\r
142 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMy", "Oct\\u2013Nov 2007",
\r
144 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdMMM", "Wed, Oct 10 \\u2013 Sat, Nov 10",
\r
146 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdMy", "Wed, 10/10/07 \\u2013 Sat, 11/10/07",
\r
148 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMy", "10/10/07 \\u2013 11/10/07",
\r
150 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dM", "10/10 \\u2013 11/10",
\r
152 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "My", "10/07 \\u2013 11/07",
\r
154 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdM", "Wed, 10/10 \\u2013 Sat, 11/10",
\r
156 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "d", "10/10 \\u2013 11/10",
\r
158 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "Ed", "10 Wed \\u2013 10 Sat",
\r
160 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "y", "2007",
\r
162 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "M", "10\\u201311",
\r
164 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMM", "Oct\\u2013Nov",
\r
166 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMM", "October-November",
\r
168 "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
170 "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
172 "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
174 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "h", "10/10/2007 10 \\u2013 11/10/2007 10",
\r
176 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hv", "10/10/2007 PT (Hour: 10) \\u2013 11/10/2007 PT (Hour: 10)",
\r
178 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "hz", "10/10/2007 PDT (Hour: 10) \\u2013 11/10/2007 PST (Hour: 10)",
\r
180 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEddMMyyyy", "Wed, 10/10/07 \\u2013 Sat, 11/10/07",
\r
182 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EddMMy", "Wed, 10/10/07 \\u2013 Sat, 11/10/07",
\r
184 "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
186 "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
188 "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
190 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMMMy", "O 10 \\u2013 N 10, 2007",
\r
192 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEEdM", "W, 10/10 \\u2013 S, 11/10",
\r
194 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMMMy", "Saturday, November 10 \\u2013 Tuesday, November 20, 2007",
\r
196 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMMy", "November 10\\u201320, 2007",
\r
198 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMM", "November 10\\u201320",
\r
200 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMMy", "November 2007",
\r
202 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMMM", "Saturday, November 10 \\u2013 Tuesday, November 20",
\r
204 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMMMy", "Sat, Nov 10 \\u2013 Tue, Nov 20, 2007",
\r
207 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMM", "Nov 10\\u201320",
\r
209 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMy", "Nov 2007",
\r
211 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMMM", "Sat, Nov 10 \\u2013 Tue, Nov 20",
\r
213 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMy", "Sat, 11/10/07 \\u2013 Tue, 11/20/07",
\r
215 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMy", "11/10/07 \\u2013 11/20/07",
\r
217 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dM", "11/10 \\u2013 11/20",
\r
219 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "My", "11/2007",
\r
220 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdM", "Sat, 11/10 \\u2013 Tue, 11/20",
\r
222 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "d", "10\\u201320",
\r
223 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "Ed", "10 Sat \\u2013 20 Tue",
\r
225 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "M", "11",
\r
227 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMM", "Nov",
\r
229 "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
231 "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
233 "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
235 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "hz", "11/10/2007 PST (Hour: 10) \\u2013 11/20/2007 PST (Hour: 10)",
\r
237 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEddMMyyyy", "Sat, 11/10/07 \\u2013 Tue, 11/20/07",
\r
239 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EddMMy", "Sat, 11/10/07 \\u2013 Tue, 11/20/07",
\r
241 "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
243 "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
245 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMMMy", "N 10\\u201320, 2007",
\r
247 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEEdM", "S, 11/10 \\u2013 T, 11/20",
\r
249 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMMMy", "Wednesday, January 10, 2007",
\r
251 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMMy", "January 10, 2007",
\r
253 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMM", "January 10",
\r
255 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMMMy", "January 2007",
\r
257 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMMM", "Wednesday, January 10",
\r
260 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMy", "Jan 10, 2007",
\r
262 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMM", "Jan 10",
\r
264 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMMy", "Jan 2007",
\r
266 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EdMMM", "Wed, Jan 10",
\r
268 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EdMy", "Wed, 1/10/2007",
\r
270 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMy", "1/10/2007",
\r
272 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dM", "1/10",
\r
275 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EdM", "Wed, 1/10",
\r
277 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "d", "10",
\r
279 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "Ed", "10 Wed",
\r
281 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "y", "2007",
\r
284 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMM", "Jan",
\r
286 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMMM", "January",
\r
288 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hm", "10:00 AM \\u2013 2:10 PM",
\r
291 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hmz", "10:00 AM \\u2013 2:10 PM PST",
\r
293 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "h", "10 AM \\u2013 2 PM",
\r
295 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hv", "10 AM \\u2013 2 PM PT",
\r
297 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hz", "10 AM \\u2013 2 PM PST",
\r
299 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEddMMyyyy", "Wed, 01/10/2007",
\r
302 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hhmm", "10:00 AM \\u2013 2:10 PM",
\r
304 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hhmmzz", "10:00 AM \\u2013 2:10 PM PST",
\r
307 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMMMy", "J 10, 2007",
\r
309 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEEdM", "W, 1/10",
\r
311 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EEEEdMMMMy", "Wednesday, January 10, 2007",
\r
313 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMMMy", "January 10, 2007",
\r
316 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "MMMMy", "January 2007",
\r
319 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EdMMMy", "Wed, Jan 10, 2007",
\r
321 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMMy", "Jan 10, 2007",
\r
323 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMM", "Jan 10",
\r
326 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EdMMM", "Wed, Jan 10",
\r
328 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EdMy", "Wed, 1/10/2007",
\r
331 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dM", "1/10",
\r
334 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EdM", "Wed, 1/10",
\r
338 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "y", "2007",
\r
341 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "MMM", "Jan",
\r
344 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hm", "10:00\\u201310:20 AM",
\r
346 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmv", "10:00\\u201310:20 AM PT",
\r
349 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "h", "10",
\r
352 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hz", "PST (Hour: 10)",
\r
355 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EddMMy", "Wed, 01/10/2007",
\r
357 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hhmm", "10:00\\u201310:20 AM",
\r
359 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hhmmzz", "10:00\\u201310:20 AM PST",
\r
361 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hms", "10:0:10 AM \\u2013 10:20:10 AM",
\r
363 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "dMMMM", "January 10",
\r
365 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EEEEdMMMM", "Wednesday, January 10",
\r
367 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EdMMMy", "Wed, Jan 10, 2007",
\r
369 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "dMMM", "Jan 10",
\r
371 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EdMMM", "Wed, Jan 10",
\r
372 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "dM", "1/10",
\r
374 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "My", "1/2007",
\r
376 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EdM", "Wed, 1/10",
\r
377 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "d", "10",
\r
379 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "Ed", "10 Wed",
\r
381 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "y", "2007",
\r
383 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "M", "1",
\r
385 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "MMM", "Jan",
\r
387 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "MMMM", "January",
\r
389 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hm", "10:10 AM",
\r
391 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmv", "10:10 AM PT",
\r
393 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmz", "10:10 AM PST",
\r
395 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "h", "10",
\r
398 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hz", "PST (Hour: 10)",
\r
400 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hhmmzz", "10:10 AM PST",
\r
402 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hms", "10:10:10 AM",
\r
406 "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
408 "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
410 "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMMy", "2007\\u5e7410\\u670810\\u65e5\\u81f311\\u670810\\u65e5",
\r
412 "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMM", "10\\u670810\\u65e5\\u81f311\\u670810\\u65e5",
\r
414 "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMMy", "2007\\u5e7410\\u6708\\u81f311\\u6708",
\r
416 "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
418 "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
420 "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
422 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMMy", "2007\\u5e7411\\u670810\\u65e5\\u81f320\\u65e5",
\r
424 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMM", "11\\u670810\\u65e5\\u81f320\\u65e5",
\r
426 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMMy", "2007-11",
\r
428 "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
430 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMMM", "11\\u670810\\u65e5\\u5468\\u516d\\u81f320\\u65e5\\u5468\\u4e8c",
\r
432 "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
434 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMy", "07-11-10\\u81f307-11-20",
\r
436 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dM", "11-10\\u81f311-20",
\r
438 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "My", "2007-11",
\r
439 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdM", "11-10\\u5468\\u516d\\u81f311-20\\u5468\\u4e8c",
\r
441 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "d", "10\\u65e5\\u81f320\\u65e5",
\r
443 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "y", "2007",
\r
445 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "M", "11",
\r
447 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMM", "11",
\r
449 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMM", "11",
\r
451 "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
453 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "h", "2007\\u5e7411\\u670810\\u65e5 10\\u20132007\\u5e7411\\u670820\\u65e5 10",
\r
455 "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMMMy", "2007\\u5e7401\\u670810\\u65e5\\u661f\\u671f\\u4e09",
\r
457 "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hm", "\\u4e0a\\u534810:00\\u81f3\\u4e0b\\u53482:10",
\r
459 "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
461 "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
463 "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "h", "\\u4e0a\\u534810\\u81f3\\u4e0b\\u53482\\u65f6",
\r
465 "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
467 "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
469 "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "dMMMM", "01-10",
\r
471 "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hm", "\\u4e0a\\u534810:00\\u81f310:20",
\r
473 "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
475 "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "h", "10",
\r
477 "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hz", "\\u683c\\u6797\\u5c3c\\u6cbb\\u6807\\u51c6\\u65f6\\u95f4-0800 (\\u5c0f\\u65f6: 10)",
\r
479 "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EEEEdMMMMy", "2007\\u5e7401\\u670810\\u65e5\\u661f\\u671f\\u4e09",
\r
481 "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hm", "\\u4e0a\\u534810:10",
\r
483 "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "h", "10",
\r
485 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEEdMMMy", "Mittwoch, 10. Okt 2007 - Freitag, 10. Okt 2008",
\r
487 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMMy", "10. Okt 2007 - 10. Okt 2008",
\r
489 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMMM", "10. Okt 2007 - 10. Okt 2008",
\r
491 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMMy", "Okt 2007 - Okt 2008",
\r
493 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EEEdMMM", "Mi., 10. Okt 2007 - Fr., 10. Okt 2008",
\r
495 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdMy", "Mi., 10.10.07 - Fr., 10.10.08",
\r
497 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dMy", "10.10.07 - 10.10.08",
\r
499 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "dM", "10.10.07 - 10.10.08",
\r
501 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "My", "10.07 - 10.08",
\r
503 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "EdM", "Mi., 10.10.07 - Fr., 10.10.08",
\r
505 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "d", "10.10.07 - 10.10.08",
\r
507 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "y", "2007-2008",
\r
509 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "M", "10.07 - 10.08",
\r
511 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "MMM", "Okt 2007 - Okt 2008",
\r
513 "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
515 "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
517 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMMy", "Mittwoch, 10. Okt - Samstag, 10. Nov 2007",
\r
519 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMMy", "10. Okt - 10. Nov 2007",
\r
521 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dMMM", "10. Okt - 10. Nov",
\r
523 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMMy", "Okt-Nov 2007",
\r
525 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EEEEdMMM", "Mittwoch, 10. Okt - Samstag, 10. Nov",
\r
527 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdMy", "Mi., 10.10.07 - Sa., 10.11.07",
\r
529 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "dM", "10.10. - 10.11.",
\r
531 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "My", "10.07 - 11.07",
\r
533 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "EdM", "Mi., 10.10. - Sa., 10.11.",
\r
535 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "d", "10.10. - 10.11.",
\r
538 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "M", "10.-11.",
\r
540 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "MMM", "Okt-Nov",
\r
542 "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
544 "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
546 "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
548 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMMy", "Samstag, 10. - Dienstag, 20. Nov 2007",
\r
550 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMMy", "10.-20. Nov 2007",
\r
552 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMMM", "10.-20. Nov",
\r
554 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "MMMy", "Nov 2007",
\r
556 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EEEEdMMM", "Samstag, 10. - Dienstag, 20. Nov",
\r
558 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdMy", "Sa., 10.11.07 - Di., 20.11.07",
\r
560 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dMy", "10.11.07 - 20.11.07",
\r
562 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "dM", "10.11. - 20.11.",
\r
564 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "My", "2007-11",
\r
566 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "EdM", "Sa., 10.11. - Di., 20.11.",
\r
568 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "d", "10.-20.",
\r
570 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "y", "2007",
\r
572 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "M", "11",
\r
574 "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
576 "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
578 "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMMy", "Mittwoch, 10. Jan 2007",
\r
580 "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMMy", "10. Jan 2007",
\r
582 "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "dMMM", "10. Jan",
\r
584 "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "MMMy", "Jan 2007",
\r
586 "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "EEEEdMMM", "Mittwoch 10. Jan",
\r
588 "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "hmz", "10:00-14:10 GMT-08:00",
\r
590 "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "h", "10-14",
\r
592 "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "EEEEdMMM", "Mittwoch 10. Jan",
\r
594 "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hm", "10:00-10:20",
\r
596 "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmv", "10:00-10:20 Vereinigte Staaten (Los Angeles)",
\r
598 "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hmz", "10:00-10:20 GMT-08:00",
\r
600 "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "h", "10",
\r
602 "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hv", "Vereinigte Staaten (Los Angeles) (Stunde: 10)",
\r
604 "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "hz", "GMT-08:00 (Stunde: 10)",
\r
606 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "EEEEdMMMy", "Mittwoch, 10. Jan 2007",
\r
608 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hm", "10:10 vorm.",
\r
610 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "jm", "10:10",
\r
612 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmv", "10:10 vorm. Vereinigte Staaten (Los Angeles)",
\r
614 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "jmv", "10:10 Vereinigte Staaten (Los Angeles)",
\r
616 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hmz", "10:10 vorm. GMT-08:00",
\r
618 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "jmz", "10:10 GMT-08:00",
\r
620 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "h", "10",
\r
622 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hv", "Vereinigte Staaten (Los Angeles) (Stunde: 10)",
\r
624 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "hz", "GMT-08:00 (Stunde: 10)",
\r
626 expect(DATA, DATA.length);
\r
630 private void expect(String[] data, int data_length) {
\r
632 while (i<data_length) {
\r
633 String locName = data[i++];
\r
634 ULocale loc = new ULocale(locName);
\r
635 SimpleDateFormat ref = new SimpleDateFormat(data[0], loc);
\r
637 String datestr = data[i++];
\r
638 String datestr_2 = data[i++];
\r
641 date = ref.parse(datestr);
\r
642 date_2 = ref.parse(datestr_2);
\r
643 } catch ( ParseException e ) {
\r
644 errln("parse exception" + e);
\r
647 DateInterval dtitv = new DateInterval(date.getTime(),
\r
649 String oneSkeleton = data[i++];
\r
650 DateIntervalFormat dtitvfmt = DateIntervalFormat.getInstance(
\r
652 String expected = data[i++];
\r
653 String formatted = dtitvfmt.format(dtitv);
\r
654 if ( !formatted.equals(Utility.unescape(expected)) ) {
\r
655 errln("\"" + locName + "\\" + oneSkeleton + "\\" + datestr + "\\" + datestr_2 + "\"\t expected: " + expected +"\tgot: " + formatted + "\n");
\r
662 * Test format using user defined DateIntervalInfo
\r
664 public void testFormatUserDII() {
\r
665 // first item is date pattern
\r
666 // followed by a group of locale/from_data/to_data/interval_data
\r
668 "yyyy MM dd HH:mm:ss",
\r
669 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "Oct 10, 2007 --- Oct 10, 2008",
\r
671 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 Oct 10 - Nov 2007",
\r
673 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "Nov 10, 2007 --- Nov 20, 2007",
\r
675 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "Jan 10, 2007",
\r
677 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "Jan 10, 2007",
\r
679 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "Jan 10, 2007",
\r
681 "zh", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "2007\\u5e7410\\u670810\\u65e5 --- 2008\\u5e7410\\u670810\\u65e5",
\r
684 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "2007\\u5e7411\\u670810\\u65e5 --- 2007\\u5e7411\\u670820\\u65e5",
\r
686 "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "2007\\u5e7401\\u670810\\u65e5",
\r
688 "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "2007\\u5e7401\\u670810\\u65e5",
\r
690 "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "2007\\u5e7401\\u670810\\u65e5",
\r
692 "de", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "10. Okt 2007 --- 10. Okt 2008",
\r
694 "de", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 Okt 10 - Nov 2007",
\r
696 "de", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "10. Nov 2007 --- 20. Nov 2007",
\r
698 "de", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "10. Jan 2007",
\r
700 "de", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "10. Jan 2007",
\r
702 "de", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "10. Jan 2007",
\r
704 "es", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "10 de oct de 2007 --- 10 de oct de 2008",
\r
706 "es", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 oct 10 - nov 2007",
\r
708 "es", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "10 de nov de 2007 --- 20 de nov de 2007",
\r
710 "es", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "10 de ene de 2007",
\r
712 "es", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "10 de ene de 2007",
\r
714 "es", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "10 de ene de 2007",
\r
716 expectUserDII(DATA, DATA.length);
\r
720 private void expectUserDII(String[] data, int data_length) {
\r
722 while (i<data_length) {
\r
723 String locName = data[i++];
\r
724 ULocale loc = new ULocale(locName);
\r
725 SimpleDateFormat ref = new SimpleDateFormat(data[0], loc);
\r
727 String datestr = data[i++];
\r
728 String datestr_2 = data[i++];
\r
731 date = ref.parse(datestr);
\r
732 date_2 = ref.parse(datestr_2);
\r
733 } catch ( ParseException e ) {
\r
734 errln("parse exception" + e);
\r
737 DateInterval dtitv = new DateInterval(date.getTime(),
\r
740 DateIntervalInfo dtitvinf = new DateIntervalInfo();
\r
741 dtitvinf.setFallbackIntervalPattern("{0} --- {1}");
\r
742 dtitvinf.setIntervalPattern("yMMMd", Calendar.MONTH, "yyyy MMM d - MMM y");
\r
743 dtitvinf.setIntervalPattern("yMMMd", Calendar.HOUR_OF_DAY, "yyyy MMM d HH:mm - HH:mm");
\r
744 DateIntervalFormat dtitvfmt = DateIntervalFormat.getInstance(
\r
745 DateFormat.YEAR_ABBR_MONTH_DAY,
\r
747 String expected = data[i++];
\r
748 String formatted = dtitvfmt.format(dtitv);
\r
749 if ( !formatted.equals(Utility.unescape(expected)) ) {
\r
750 errln("userDII: \"" + locName + "\\" + datestr + "\\" + datestr_2 + "\"\t expected: " + expected +"\tgot: " + formatted + "\n");
\r
758 * Test format using user defined DateIntervalInfo
\r
760 public void testFormatCLDR() {
\r
761 // first item is date pattern
\r
762 // followed by a group of locale/from_data/to_data/interval_data
\r
764 "yyyy MM dd HH:mm:ss",
\r
765 "en", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "all diff",
\r
767 "en", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 diff Oct 10 - Nov 2007",
\r
769 "en", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "2007 Nov 10 ~ 20",
\r
771 "en", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "Jan 10, 2007",
\r
773 "en", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "Jan 10, 2007",
\r
775 "en", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "Jan 10, 2007",
\r
777 "zh", "2007 10 10 10:10:10", "2008 10 10 10:10:10", "all diff",
\r
779 "zh", "2007 10 10 10:10:10", "2007 11 10 10:10:10", "2007 diff 10\\u6708 10 - 11\\u6708 2007",
\r
781 "zh", "2007 11 10 10:10:10", "2007 11 20 10:10:10", "2007 11\\u6708 10 ~ 20",
\r
783 "zh", "2007 01 10 10:00:10", "2007 01 10 14:10:10", "2007\u5E7401\\u670810\u65E5",
\r
785 "zh", "2007 01 10 10:00:10", "2007 01 10 10:20:10", "2007\u5E7401\\u670810\u65E5",
\r
787 "zh", "2007 01 10 10:10:10", "2007 01 10 10:10:20", "2007\u5E7401\\u670810\u65E5",
\r
789 expectUserCLDR(DATA, DATA.length);
\r
793 private void expectUserCLDR(String[] data, int data_length) {
\r
795 while (i<data_length) {
\r
796 String locName = data[i++];
\r
797 ULocale loc = new ULocale(locName);
\r
798 SimpleDateFormat ref = new SimpleDateFormat(data[0], loc);
\r
800 String datestr = data[i++];
\r
801 String datestr_2 = data[i++];
\r
804 date = ref.parse(datestr);
\r
805 date_2 = ref.parse(datestr_2);
\r
806 } catch ( ParseException e ) {
\r
807 errln("parse exception" + e);
\r
810 DateInterval dtitv = new DateInterval(date.getTime(),
\r
813 DateIntervalFormat dtitvfmt = DateIntervalFormat.getInstance("yyyyMMMdd", loc);
\r
814 //DateIntervalFormat dtitvfmt = DateIntervalFormat.getInstance("yMd");
\r
815 //SimpleDateFormat dtfmt = new SimpleDateFormat("yyyy 'year' MMM 'month' dd 'day'", loc);
\r
816 //dtitvfmt.setDateFormat(dtfmt);
\r
817 DateIntervalInfo dtitvinf = new DateIntervalInfo();
\r
818 dtitvinf.setFallbackIntervalPattern("{0} --- {1}");
\r
819 dtitvinf.setIntervalPattern("yMMMd", Calendar.YEAR, "'all diff'");
\r
820 dtitvinf.setIntervalPattern("yMMMd", Calendar.MONTH, "yyyy 'diff' MMM d - MMM y");
\r
821 dtitvinf.setIntervalPattern("yMMMd", Calendar.DATE, "yyyy MMM d ~ d");
\r
822 dtitvinf.setIntervalPattern("yMMMd", Calendar.HOUR_OF_DAY, "yyyy MMMd HH:mm ~ HH:mm");
\r
823 dtitvfmt.setDateIntervalInfo(dtitvinf);
\r
824 FieldPosition pos = new FieldPosition(0);
\r
825 StringBuffer str = new StringBuffer("");
\r
826 DateFormat dtfmt = dtitvfmt.getDateFormat();
\r
827 Calendar fromCalendar = (Calendar) dtfmt.getCalendar().clone();
\r
828 Calendar toCalendar = (Calendar) dtfmt.getCalendar().clone();
\r
829 fromCalendar.setTimeInMillis(dtitv.getFromDate());
\r
830 toCalendar.setTimeInMillis(dtitv.getToDate());
\r
831 dtitvfmt.format(fromCalendar, toCalendar, str, pos);
\r
833 String expected = data[i++];
\r
834 String formatted = dtitvfmt.format(dtitv).toString();
\r
835 if ( !formatted.equals(Utility.unescape(expected)) ) {
\r
836 errln("CLDR: \"" + locName + "\\" + datestr + "\\" + datestr_2 + "\"\t expected: " + expected +"\tgot: " + formatted + "\n");
\r
845 public void testStress() {
\r
846 if (getInclusion() <= 5) {
\r
847 logln("INFO: Skipping test");
\r
852 // The 1st is the format pattern,
\r
853 // Next are pairs in which the 1st in the pair is the earlier date
\r
854 // and the 2nd in the pair is the later date
\r
856 "yyyy MM dd HH:mm:ss",
\r
857 "2007 10 10 10:10:10", "2008 10 10 10:10:10",
\r
858 "2007 10 10 10:10:10", "2007 11 10 10:10:10",
\r
859 "2007 11 10 10:10:10", "2007 11 20 10:10:10",
\r
860 "2007 01 10 10:00:10", "2007 01 10 14:10:10",
\r
861 "2007 01 10 10:00:10", "2007 01 10 10:20:10",
\r
862 "2007 01 10 10:10:10", "2007 01 10 10:10:20",
\r
866 String[][] testLocale = {
\r
909 for ( localeIndex = 0; localeIndex < testLocale.length; ++localeIndex) {
\r
910 stress(DATA, DATA.length, new Locale(testLocale[localeIndex][0],
\r
911 testLocale[localeIndex][1], testLocale[localeIndex][2]),
\r
912 testLocale[localeIndex][0]+testLocale[localeIndex][1]);
\r
916 private void stress(String[] data, int data_length, Locale loc, String locName) {
\r
917 String[] skeleton = {
\r
945 "EEddMMyyyy", // following could be normalized
\r
949 "hms", // following could not be normalized
\r
956 SimpleDateFormat ref = new SimpleDateFormat(data[i++], loc);
\r
958 while (i<data_length) {
\r
960 String datestr = data[i++];
\r
961 String datestr_2 = data[i++];
\r
965 date = ref.parse(datestr);
\r
966 date_2 = ref.parse(datestr_2);
\r
967 } catch ( ParseException e ) {
\r
968 errln("parse exception" + e);
\r
971 DateInterval dtitv = new DateInterval(date.getTime(), date_2.getTime());
\r
973 for ( int skeletonIndex = 0;
\r
974 skeletonIndex < skeleton.length;
\r
975 ++skeletonIndex ) {
\r
976 String oneSkeleton = skeleton[skeletonIndex];
\r
977 // need special handle of "Thai" since the default calendar
\r
978 // of "Thai" is "Budd", not "Gregorian".
\r
979 DateIntervalFormat dtitvfmt = DateIntervalFormat.getInstance(oneSkeleton, loc);
\r
981 if ( locName.equals("th") ) {
\r
982 // reset calendar to be Gregorian
\r
983 GregorianCalendar gregCal = new GregorianCalendar(loc);
\r
984 DateFormat dformat = dtitvfmt.getDateFormat();
\r
985 DateFormat newOne = (DateFormat)dformat.clone();
\r
986 newOne.setCalendar(gregCal);
\r
987 dtitvfmt.setDateFormat(newOne);
\r
990 dtitvfmt.format(dtitv);
\r
994 // test interval format by algorithm
\r
995 for ( int style = DateFormat.FULL; style < 4; ++style ) {
\r
996 SimpleDateFormat dtfmt = (SimpleDateFormat) DateFormat.getDateInstance(style, loc);
\r
997 FieldPosition pos = new FieldPosition(0);
\r
998 StringBuffer str = new StringBuffer("");
\r
999 Calendar fromCalendar = (Calendar) dtfmt.getCalendar().clone();
\r
1000 Calendar toCalendar = (Calendar) dtfmt.getCalendar().clone();
\r
1001 fromCalendar.setTimeInMillis(dtitv.getFromDate());
\r
1002 toCalendar.setTimeInMillis(dtitv.getToDate());
\r
1003 dtfmt.intervalFormatByAlgorithm(fromCalendar, toCalendar, str, pos);
\r
1009 * Ticket#6396 DateIntervalInfo of ICU4J 4.0d3 throw NullPointerException
\r
1011 public void TestT6396() {
\r
1012 DateIntervalInfo dii = new DateIntervalInfo(new ULocale("th_TH"));
\r
1014 // ticket#6396 reported toString() throws NullPointerException
\r
1015 String diiStr = dii.toString();
\r
1016 logln("new DateIntervalInfo(new ULocale(\"th_TH\")).toString() - " + diiStr);
\r
1018 // equals also had the similar problem
\r
1019 DateIntervalInfo dii1 = (DateIntervalInfo)dii.clone();
\r
1020 if (!dii.equals(dii1)) {
\r
1021 errln("FAIL: Cloned DateIntervalInfo is not equal to the source");
\r
1023 } catch (Exception e) {
\r
1024 errln("FAIL: Exception - " + e.getClass().getName());
\r