View Javadoc

1   /*
2    *  Copyright 2001-2005 Stephen Colebourne
3    *
4    *  Licensed under the Apache License, Version 2.0 (the "License");
5    *  you may not use this file except in compliance with the License.
6    *  You may obtain a copy of the License at
7    *
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    *
10   *  Unless required by applicable law or agreed to in writing, software
11   *  distributed under the License is distributed on an "AS IS" BASIS,
12   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   *  See the License for the specific language governing permissions and
14   *  limitations under the License.
15   */
16  package org.joda.time.format;
17  
18  import java.util.Locale;
19  import java.util.TimeZone;
20  
21  import junit.framework.TestCase;
22  import junit.framework.TestSuite;
23  
24  import org.joda.time.DateTime;
25  import org.joda.time.DateTimeConstants;
26  import org.joda.time.DateTimeFieldType;
27  import org.joda.time.DateTimeUtils;
28  import org.joda.time.DateTimeZone;
29  import org.joda.time.Partial;
30  
31  /**
32   * This class is a Junit unit test for ISODateTimeFormat.
33   *
34   * @author Stephen Colebourne
35   */
36  public class TestISODateTimeFormat extends TestCase {
37  
38      private static final DateTimeZone UTC = DateTimeZone.UTC;
39      private static final DateTimeZone PARIS = DateTimeZone.forID("Europe/Paris");
40      private static final DateTimeZone LONDON = DateTimeZone.forID("Europe/London");
41      private static final DateTimeZone TOKYO = DateTimeZone.forID("Asia/Tokyo");
42  
43      long y2002days = 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 + 
44                       366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 + 
45                       365 + 365 + 366 + 365 + 365 + 365 + 366 + 365 + 365 + 365 +
46                       366 + 365;
47      // 2002-06-09
48      private long TEST_TIME_NOW =
49              (y2002days + 31L + 28L + 31L + 30L + 31L + 9L -1L) * DateTimeConstants.MILLIS_PER_DAY;
50  
51      private DateTimeZone originalDateTimeZone = null;
52      private TimeZone originalTimeZone = null;
53      private Locale originalLocale = null;
54  
55      public static void main(String[] args) {
56          junit.textui.TestRunner.run(suite());
57      }
58  
59      public static TestSuite suite() {
60          return new TestSuite(TestISODateTimeFormat.class);
61      }
62  
63      public TestISODateTimeFormat(String name) {
64          super(name);
65      }
66  
67      protected void setUp() throws Exception {
68          DateTimeUtils.setCurrentMillisFixed(TEST_TIME_NOW);
69          originalDateTimeZone = DateTimeZone.getDefault();
70          originalTimeZone = TimeZone.getDefault();
71          originalLocale = Locale.getDefault();
72          DateTimeZone.setDefault(LONDON);
73          TimeZone.setDefault(TimeZone.getTimeZone("Europe/London"));
74          Locale.setDefault(Locale.UK);
75      }
76  
77      protected void tearDown() throws Exception {
78          DateTimeUtils.setCurrentMillisSystem();
79          DateTimeZone.setDefault(originalDateTimeZone);
80          TimeZone.setDefault(originalTimeZone);
81          Locale.setDefault(originalLocale);
82          originalDateTimeZone = null;
83          originalTimeZone = null;
84          originalLocale = null;
85      }
86  
87      //-----------------------------------------------------------------------
88      public void testSubclassableConstructor() {
89          ISODateTimeFormat f = new ISODateTimeFormat() {
90              // test constructor is protected
91          };
92          assertNotNull(f);
93      }
94  
95      //-----------------------------------------------------------------------
96      public void testFormat_date() {
97          DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
98          assertEquals("2004-06-09", ISODateTimeFormat.date().print(dt));
99          
100         dt = dt.withZone(LONDON);
101         assertEquals("2004-06-09", ISODateTimeFormat.date().print(dt));
102         
103         dt = dt.withZone(PARIS);
104         assertEquals("2004-06-09", ISODateTimeFormat.date().print(dt));
105     }
106 
107     public void testFormat_date_partial() {
108         Partial dt = new Partial(
109                 new DateTimeFieldType[] {DateTimeFieldType.year(), DateTimeFieldType.monthOfYear(), DateTimeFieldType.dayOfMonth()},
110                 new int[] {2004, 6, 9});
111         assertEquals("2004-06-09", ISODateTimeFormat.date().print(dt));
112     }
113 
114     public void testFormat_time() {
115         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
116         assertEquals("10:20:30.040Z", ISODateTimeFormat.time().print(dt));
117         
118         dt = dt.withZone(LONDON);
119         assertEquals("11:20:30.040+01:00", ISODateTimeFormat.time().print(dt));
120         
121         dt = dt.withZone(PARIS);
122         assertEquals("12:20:30.040+02:00", ISODateTimeFormat.time().print(dt));
123     }
124 
125     public void testFormat_time_partial() {
126         Partial dt = new Partial(
127                 new DateTimeFieldType[] {DateTimeFieldType.hourOfDay(), DateTimeFieldType.minuteOfHour(),
128                         DateTimeFieldType.secondOfMinute(), DateTimeFieldType.millisOfSecond()},
129                 new int[] {10, 20, 30, 40});
130         assertEquals("10:20:30.040", ISODateTimeFormat.time().print(dt));
131     }
132 
133     public void testFormat_timeNoMillis() {
134         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
135         assertEquals("10:20:30Z", ISODateTimeFormat.timeNoMillis().print(dt));
136         
137         dt = dt.withZone(LONDON);
138         assertEquals("11:20:30+01:00", ISODateTimeFormat.timeNoMillis().print(dt));
139         
140         dt = dt.withZone(PARIS);
141         assertEquals("12:20:30+02:00", ISODateTimeFormat.timeNoMillis().print(dt));
142     }
143 
144     public void testFormat_timeNoMillis_partial() {
145         Partial dt = new Partial(
146                 new DateTimeFieldType[] {DateTimeFieldType.hourOfDay(), DateTimeFieldType.minuteOfHour(),
147                         DateTimeFieldType.secondOfMinute(), DateTimeFieldType.millisOfSecond()},
148                 new int[] {10, 20, 30, 40});
149         assertEquals("10:20:30", ISODateTimeFormat.timeNoMillis().print(dt));
150     }
151 
152     public void testFormat_tTime() {
153         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
154         assertEquals("T10:20:30.040Z", ISODateTimeFormat.tTime().print(dt));
155         
156         dt = dt.withZone(LONDON);
157         assertEquals("T11:20:30.040+01:00", ISODateTimeFormat.tTime().print(dt));
158         
159         dt = dt.withZone(PARIS);
160         assertEquals("T12:20:30.040+02:00", ISODateTimeFormat.tTime().print(dt));
161     }
162 
163     public void testFormat_tTimeNoMillis() {
164         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
165         assertEquals("T10:20:30Z", ISODateTimeFormat.tTimeNoMillis().print(dt));
166         
167         dt = dt.withZone(LONDON);
168         assertEquals("T11:20:30+01:00", ISODateTimeFormat.tTimeNoMillis().print(dt));
169         
170         dt = dt.withZone(PARIS);
171         assertEquals("T12:20:30+02:00", ISODateTimeFormat.tTimeNoMillis().print(dt));
172     }
173 
174     public void testFormat_dateTime() {
175         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
176         assertEquals("2004-06-09T10:20:30.040Z", ISODateTimeFormat.dateTime().print(dt));
177         
178         dt = dt.withZone(LONDON);
179         assertEquals("2004-06-09T11:20:30.040+01:00", ISODateTimeFormat.dateTime().print(dt));
180         
181         dt = dt.withZone(PARIS);
182         assertEquals("2004-06-09T12:20:30.040+02:00", ISODateTimeFormat.dateTime().print(dt));
183         
184 //        dt = dt.withZone(LONDON);
185 //        assertEquals("2004-06-09T11:20:30.040+01:00", ISODateTimeFormat.getInstance(PARIS).dateTime().print(dt));
186 //        
187 //        dt = dt.withZone(LONDON);
188 //        assertEquals("2004-06-09T12:20:30.040+02:00", ISODateTimeFormat.dateTime().print(dt.getMillis(), PARIS));
189 //        
190 //        dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, CopticChronology.getInstance());
191 //        assertEquals("2288-02-19T10:20:30.040Z", ISODateTimeFormat.dateTime().print(dt));
192 //        
193 //        dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, CopticChronology.getInstance());
194 //        assertEquals("2004-06-09T10:20:30.040Z", ISODateTimeFormat.getInstance(CopticChronology.getInstance()).dateTime().print(dt));
195     }
196 
197     public void testFormat_dateTimeNoMillis() {
198         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
199         assertEquals("2004-06-09T10:20:30Z", ISODateTimeFormat.dateTimeNoMillis().print(dt));
200         
201         dt = dt.withZone(LONDON);
202         assertEquals("2004-06-09T11:20:30+01:00", ISODateTimeFormat.dateTimeNoMillis().print(dt));
203         
204         dt = dt.withZone(PARIS);
205         assertEquals("2004-06-09T12:20:30+02:00", ISODateTimeFormat.dateTimeNoMillis().print(dt));
206     }
207 
208     public void testFormat_ordinalDate() {
209         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
210         assertEquals("2004-161", ISODateTimeFormat.ordinalDate().print(dt));
211         
212         dt = dt.withZone(LONDON);
213         assertEquals("2004-161", ISODateTimeFormat.ordinalDate().print(dt));
214         
215         dt = dt.withZone(PARIS);
216         assertEquals("2004-161", ISODateTimeFormat.ordinalDate().print(dt));
217     }
218 
219     public void testFormat_ordinalDateTime() {
220         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
221         assertEquals("2004-161T10:20:30.040Z", ISODateTimeFormat.ordinalDateTime().print(dt));
222         
223         dt = dt.withZone(LONDON);
224         assertEquals("2004-161T11:20:30.040+01:00", ISODateTimeFormat.ordinalDateTime().print(dt));
225         
226         dt = dt.withZone(PARIS);
227         assertEquals("2004-161T12:20:30.040+02:00", ISODateTimeFormat.ordinalDateTime().print(dt));
228     }
229 
230     public void testFormat_ordinalDateTimeNoMillis() {
231         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
232         assertEquals("2004-161T10:20:30Z", ISODateTimeFormat.ordinalDateTimeNoMillis().print(dt));
233         
234         dt = dt.withZone(LONDON);
235         assertEquals("2004-161T11:20:30+01:00", ISODateTimeFormat.ordinalDateTimeNoMillis().print(dt));
236         
237         dt = dt.withZone(PARIS);
238         assertEquals("2004-161T12:20:30+02:00", ISODateTimeFormat.ordinalDateTimeNoMillis().print(dt));
239     }
240 
241     public void testFormat_weekDate() {
242         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
243         assertEquals("2004-W24-3", ISODateTimeFormat.weekDate().print(dt));
244         
245         dt = dt.withZone(LONDON);
246         assertEquals("2004-W24-3", ISODateTimeFormat.weekDate().print(dt));
247         
248         dt = dt.withZone(PARIS);
249         assertEquals("2004-W24-3", ISODateTimeFormat.weekDate().print(dt));
250     }
251 
252     public void testFormat_weekDateTime() {
253         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
254         assertEquals("2004-W24-3T10:20:30.040Z", ISODateTimeFormat.weekDateTime().print(dt));
255         
256         dt = dt.withZone(LONDON);
257         assertEquals("2004-W24-3T11:20:30.040+01:00", ISODateTimeFormat.weekDateTime().print(dt));
258         
259         dt = dt.withZone(PARIS);
260         assertEquals("2004-W24-3T12:20:30.040+02:00", ISODateTimeFormat.weekDateTime().print(dt));
261     }
262 
263     public void testFormat_weekDateTimeNoMillis() {
264         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
265         assertEquals("2004-W24-3T10:20:30Z", ISODateTimeFormat.weekDateTimeNoMillis().print(dt));
266         
267         dt = dt.withZone(LONDON);
268         assertEquals("2004-W24-3T11:20:30+01:00", ISODateTimeFormat.weekDateTimeNoMillis().print(dt));
269         
270         dt = dt.withZone(PARIS);
271         assertEquals("2004-W24-3T12:20:30+02:00", ISODateTimeFormat.weekDateTimeNoMillis().print(dt));
272     }
273 
274     //-----------------------------------------------------------------------
275     public void testFormat_basicDate() {
276         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
277         assertEquals("20040609", ISODateTimeFormat.basicDate().print(dt));
278         
279         dt = dt.withZone(LONDON);
280         assertEquals("20040609", ISODateTimeFormat.basicDate().print(dt));
281         
282         dt = dt.withZone(PARIS);
283         assertEquals("20040609", ISODateTimeFormat.basicDate().print(dt));
284     }
285 
286     public void testFormat_basicTime() {
287         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
288         assertEquals("102030.040Z", ISODateTimeFormat.basicTime().print(dt));
289         
290         dt = dt.withZone(LONDON);
291         assertEquals("112030.040+0100", ISODateTimeFormat.basicTime().print(dt));
292         
293         dt = dt.withZone(PARIS);
294         assertEquals("122030.040+0200", ISODateTimeFormat.basicTime().print(dt));
295     }
296 
297     public void testFormat_basicTimeNoMillis() {
298         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
299         assertEquals("102030Z", ISODateTimeFormat.basicTimeNoMillis().print(dt));
300         
301         dt = dt.withZone(LONDON);
302         assertEquals("112030+0100", ISODateTimeFormat.basicTimeNoMillis().print(dt));
303         
304         dt = dt.withZone(PARIS);
305         assertEquals("122030+0200", ISODateTimeFormat.basicTimeNoMillis().print(dt));
306     }
307 
308     public void testFormat_basicTTime() {
309         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
310         assertEquals("T102030.040Z", ISODateTimeFormat.basicTTime().print(dt));
311         
312         dt = dt.withZone(LONDON);
313         assertEquals("T112030.040+0100", ISODateTimeFormat.basicTTime().print(dt));
314         
315         dt = dt.withZone(PARIS);
316         assertEquals("T122030.040+0200", ISODateTimeFormat.basicTTime().print(dt));
317     }
318 
319     public void testFormat_basicTTimeNoMillis() {
320         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
321         assertEquals("T102030Z", ISODateTimeFormat.basicTTimeNoMillis().print(dt));
322         
323         dt = dt.withZone(LONDON);
324         assertEquals("T112030+0100", ISODateTimeFormat.basicTTimeNoMillis().print(dt));
325         
326         dt = dt.withZone(PARIS);
327         assertEquals("T122030+0200", ISODateTimeFormat.basicTTimeNoMillis().print(dt));
328     }
329 
330     public void testFormat_basicDateTime() {
331         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
332         assertEquals("20040609T102030.040Z", ISODateTimeFormat.basicDateTime().print(dt));
333         
334         dt = dt.withZone(LONDON);
335         assertEquals("20040609T112030.040+0100", ISODateTimeFormat.basicDateTime().print(dt));
336         
337         dt = dt.withZone(PARIS);
338         assertEquals("20040609T122030.040+0200", ISODateTimeFormat.basicDateTime().print(dt));
339     }
340 
341     public void testFormat_basicDateTimeNoMillis() {
342         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
343         assertEquals("20040609T102030Z", ISODateTimeFormat.basicDateTimeNoMillis().print(dt));
344         
345         dt = dt.withZone(LONDON);
346         assertEquals("20040609T112030+0100", ISODateTimeFormat.basicDateTimeNoMillis().print(dt));
347         
348         dt = dt.withZone(PARIS);
349         assertEquals("20040609T122030+0200", ISODateTimeFormat.basicDateTimeNoMillis().print(dt));
350     }
351 
352     public void testFormat_basicOrdinalDate() {
353         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
354         assertEquals("2004161", ISODateTimeFormat.basicOrdinalDate().print(dt));
355         
356         dt = dt.withZone(LONDON);
357         assertEquals("2004161", ISODateTimeFormat.basicOrdinalDate().print(dt));
358         
359         dt = dt.withZone(PARIS);
360         assertEquals("2004161", ISODateTimeFormat.basicOrdinalDate().print(dt));
361     }
362 
363     public void testFormat_basicOrdinalDateTime() {
364         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
365         assertEquals("2004161T102030.040Z", ISODateTimeFormat.basicOrdinalDateTime().print(dt));
366         
367         dt = dt.withZone(LONDON);
368         assertEquals("2004161T112030.040+0100", ISODateTimeFormat.basicOrdinalDateTime().print(dt));
369         
370         dt = dt.withZone(PARIS);
371         assertEquals("2004161T122030.040+0200", ISODateTimeFormat.basicOrdinalDateTime().print(dt));
372     }
373 
374     public void testFormat_basicOrdinalDateTimeNoMillis() {
375         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
376         assertEquals("2004161T102030Z", ISODateTimeFormat.basicOrdinalDateTimeNoMillis().print(dt));
377         
378         dt = dt.withZone(LONDON);
379         assertEquals("2004161T112030+0100", ISODateTimeFormat.basicOrdinalDateTimeNoMillis().print(dt));
380         
381         dt = dt.withZone(PARIS);
382         assertEquals("2004161T122030+0200", ISODateTimeFormat.basicOrdinalDateTimeNoMillis().print(dt));
383     }
384 
385     public void testFormat_basicWeekDate() {
386         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
387         assertEquals("2004W243", ISODateTimeFormat.basicWeekDate().print(dt));
388         
389         dt = dt.withZone(LONDON);
390         assertEquals("2004W243", ISODateTimeFormat.basicWeekDate().print(dt));
391         
392         dt = dt.withZone(PARIS);
393         assertEquals("2004W243", ISODateTimeFormat.basicWeekDate().print(dt));
394     }
395 
396     public void testFormat_basicWeekDateTime() {
397         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
398         assertEquals("2004W243T102030.040Z", ISODateTimeFormat.basicWeekDateTime().print(dt));
399         
400         dt = dt.withZone(LONDON);
401         assertEquals("2004W243T112030.040+0100", ISODateTimeFormat.basicWeekDateTime().print(dt));
402         
403         dt = dt.withZone(PARIS);
404         assertEquals("2004W243T122030.040+0200", ISODateTimeFormat.basicWeekDateTime().print(dt));
405     }
406 
407     public void testFormat_basicWeekDateTimeNoMillis() {
408         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
409         assertEquals("2004W243T102030Z", ISODateTimeFormat.basicWeekDateTimeNoMillis().print(dt));
410         
411         dt = dt.withZone(LONDON);
412         assertEquals("2004W243T112030+0100", ISODateTimeFormat.basicWeekDateTimeNoMillis().print(dt));
413         
414         dt = dt.withZone(PARIS);
415         assertEquals("2004W243T122030+0200", ISODateTimeFormat.basicWeekDateTimeNoMillis().print(dt));
416     }
417 
418     //-----------------------------------------------------------------------
419     public void testFormat_year() {
420         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
421         assertEquals("2004", ISODateTimeFormat.year().print(dt));
422         
423         dt = dt.withZone(LONDON);
424         assertEquals("2004", ISODateTimeFormat.year().print(dt));
425         
426         dt = dt.withZone(PARIS);
427         assertEquals("2004", ISODateTimeFormat.year().print(dt));
428     }
429 
430     public void testFormat_yearMonth() {
431         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
432         assertEquals("2004-06", ISODateTimeFormat.yearMonth().print(dt));
433         
434         dt = dt.withZone(LONDON);
435         assertEquals("2004-06", ISODateTimeFormat.yearMonth().print(dt));
436         
437         dt = dt.withZone(PARIS);
438         assertEquals("2004-06", ISODateTimeFormat.yearMonth().print(dt));
439     }
440 
441     public void testFormat_yearMonthDay() {
442         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
443         assertEquals("2004-06-09", ISODateTimeFormat.yearMonthDay().print(dt));
444         
445         dt = dt.withZone(LONDON);
446         assertEquals("2004-06-09", ISODateTimeFormat.yearMonthDay().print(dt));
447         
448         dt = dt.withZone(PARIS);
449         assertEquals("2004-06-09", ISODateTimeFormat.yearMonthDay().print(dt));
450     }
451 
452     public void testFormat_weekyear() {
453         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
454         assertEquals("2004", ISODateTimeFormat.weekyear().print(dt));
455         
456         dt = dt.withZone(LONDON);
457         assertEquals("2004", ISODateTimeFormat.weekyear().print(dt));
458         
459         dt = dt.withZone(PARIS);
460         assertEquals("2004", ISODateTimeFormat.weekyear().print(dt));
461     }
462 
463     public void testFormat_weekyearWeek() {
464         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
465         assertEquals("2004-W24", ISODateTimeFormat.weekyearWeek().print(dt));
466         
467         dt = dt.withZone(LONDON);
468         assertEquals("2004-W24", ISODateTimeFormat.weekyearWeek().print(dt));
469         
470         dt = dt.withZone(PARIS);
471         assertEquals("2004-W24", ISODateTimeFormat.weekyearWeek().print(dt));
472     }
473 
474     public void testFormat_weekyearWeekDay() {
475         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
476         assertEquals("2004-W24-3", ISODateTimeFormat.weekyearWeekDay().print(dt));
477         
478         dt = dt.withZone(LONDON);
479         assertEquals("2004-W24-3", ISODateTimeFormat.weekyearWeekDay().print(dt));
480         
481         dt = dt.withZone(PARIS);
482         assertEquals("2004-W24-3", ISODateTimeFormat.weekyearWeekDay().print(dt));
483     }
484 
485     //-----------------------------------------------------------------------
486     public void testFormat_hour() {
487         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
488         assertEquals("10", ISODateTimeFormat.hour().print(dt));
489         
490         dt = dt.withZone(LONDON);
491         assertEquals("11", ISODateTimeFormat.hour().print(dt));
492         
493         dt = dt.withZone(PARIS);
494         assertEquals("12", ISODateTimeFormat.hour().print(dt));
495     }
496 
497     public void testFormat_hourMinute() {
498         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
499         assertEquals("10:20", ISODateTimeFormat.hourMinute().print(dt));
500         
501         dt = dt.withZone(LONDON);
502         assertEquals("11:20", ISODateTimeFormat.hourMinute().print(dt));
503         
504         dt = dt.withZone(PARIS);
505         assertEquals("12:20", ISODateTimeFormat.hourMinute().print(dt));
506     }
507 
508     public void testFormat_hourMinuteSecond() {
509         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
510         assertEquals("10:20:30", ISODateTimeFormat.hourMinuteSecond().print(dt));
511         
512         dt = dt.withZone(LONDON);
513         assertEquals("11:20:30", ISODateTimeFormat.hourMinuteSecond().print(dt));
514         
515         dt = dt.withZone(PARIS);
516         assertEquals("12:20:30", ISODateTimeFormat.hourMinuteSecond().print(dt));
517     }
518 
519     public void testFormat_hourMinuteSecondMillis() {
520         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
521         assertEquals("10:20:30.040", ISODateTimeFormat.hourMinuteSecondMillis().print(dt));
522         
523         dt = dt.withZone(LONDON);
524         assertEquals("11:20:30.040", ISODateTimeFormat.hourMinuteSecondMillis().print(dt));
525         
526         dt = dt.withZone(PARIS);
527         assertEquals("12:20:30.040", ISODateTimeFormat.hourMinuteSecondMillis().print(dt));
528     }
529 
530     public void testFormat_hourMinuteSecondFraction() {
531         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
532         assertEquals("10:20:30.040", ISODateTimeFormat.hourMinuteSecondFraction().print(dt));
533         
534         dt = dt.withZone(LONDON);
535         assertEquals("11:20:30.040", ISODateTimeFormat.hourMinuteSecondFraction().print(dt));
536         
537         dt = dt.withZone(PARIS);
538         assertEquals("12:20:30.040", ISODateTimeFormat.hourMinuteSecondFraction().print(dt));
539     }
540 
541     //-----------------------------------------------------------------------
542     public void testFormat_dateHour() {
543         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
544         assertEquals("2004-06-09T10", ISODateTimeFormat.dateHour().print(dt));
545         
546         dt = dt.withZone(LONDON);
547         assertEquals("2004-06-09T11", ISODateTimeFormat.dateHour().print(dt));
548         
549         dt = dt.withZone(PARIS);
550         assertEquals("2004-06-09T12", ISODateTimeFormat.dateHour().print(dt));
551     }
552 
553     public void testFormat_dateHourMinute() {
554         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
555         assertEquals("2004-06-09T10:20", ISODateTimeFormat.dateHourMinute().print(dt));
556         
557         dt = dt.withZone(LONDON);
558         assertEquals("2004-06-09T11:20", ISODateTimeFormat.dateHourMinute().print(dt));
559         
560         dt = dt.withZone(PARIS);
561         assertEquals("2004-06-09T12:20", ISODateTimeFormat.dateHourMinute().print(dt));
562     }
563 
564     public void testFormat_dateHourMinuteSecond() {
565         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
566         assertEquals("2004-06-09T10:20:30", ISODateTimeFormat.dateHourMinuteSecond().print(dt));
567         
568         dt = dt.withZone(LONDON);
569         assertEquals("2004-06-09T11:20:30", ISODateTimeFormat.dateHourMinuteSecond().print(dt));
570         
571         dt = dt.withZone(PARIS);
572         assertEquals("2004-06-09T12:20:30", ISODateTimeFormat.dateHourMinuteSecond().print(dt));
573     }
574 
575     public void testFormat_dateHourMinuteSecondMillis() {
576         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
577         assertEquals("2004-06-09T10:20:30.040", ISODateTimeFormat.dateHourMinuteSecondMillis().print(dt));
578         
579         dt = dt.withZone(LONDON);
580         assertEquals("2004-06-09T11:20:30.040", ISODateTimeFormat.dateHourMinuteSecondMillis().print(dt));
581         
582         dt = dt.withZone(PARIS);
583         assertEquals("2004-06-09T12:20:30.040", ISODateTimeFormat.dateHourMinuteSecondMillis().print(dt));
584     }
585 
586     public void testFormat_dateHourMinuteSecondFraction() {
587         DateTime dt = new DateTime(2004, 6, 9, 10, 20, 30, 40, UTC);
588         assertEquals("2004-06-09T10:20:30.040", ISODateTimeFormat.dateHourMinuteSecondFraction().print(dt));
589         
590         dt = dt.withZone(LONDON);
591         assertEquals("2004-06-09T11:20:30.040", ISODateTimeFormat.dateHourMinuteSecondFraction().print(dt));
592         
593         dt = dt.withZone(PARIS);
594         assertEquals("2004-06-09T12:20:30.040", ISODateTimeFormat.dateHourMinuteSecondFraction().print(dt));
595     }
596 
597 }