package com.atomikos.icatch.tcc.rest;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.util.Calendar;
import java.util.TimeZone;
import javax.xml.bind.DatatypeConverter;
import org.junit.Test;
public class FormatIso8601DateFormatTestJUnit {
String dateFromJochen = "2002-05-30T09:30:10Z";
String dateFromJochenNonUTC = "2002-05-30T10:30:10+01:00";
long dateFromJochenInMillis = 1022751010000l;
@Test
public void testParseUTCDate() throws Exception {
//from Str to Date/Calendar/timestamp
Calendar cal = DatatypeConverter.parseDateTime(dateFromJochen);
assertNotNull(cal);
assertEquals(2002, cal.get(Calendar.YEAR));
assertEquals(4, cal.get(Calendar.MONTH));
assertEquals(30, cal.get(Calendar.DAY_OF_MONTH));
assertEquals(9, cal.get(Calendar.HOUR));
assertEquals(30, cal.get(Calendar.MINUTE));
assertEquals(10, cal.get(Calendar.SECOND));
assertEquals(TimeZone.getTimeZone("GMT+00:00"), cal.getTimeZone());
assertEquals(dateFromJochenInMillis,cal.getTimeInMillis());
}
@Test
public void testParseWithTimeZone() {
Calendar cal = DatatypeConverter.parseDateTime(dateFromJochenNonUTC);
assertNotNull(cal);
assertEquals(2002, cal.get(Calendar.YEAR));
assertEquals(4, cal.get(Calendar.MONTH));
assertEquals(30, cal.get(Calendar.DAY_OF_MONTH));
//!!! cf. GMT+01/00
assertEquals(10, cal.get(Calendar.HOUR));
assertEquals(30, cal.get(Calendar.MINUTE));
assertEquals(10, cal.get(Calendar.SECOND));
//!!! cf. GMT+01/00
assertEquals(TimeZone.getTimeZone("GMT+01:00"), cal.getTimeZone());
assertEquals(dateFromJochenInMillis,cal.getTimeInMillis());
}
// @Test
// public void testFormatDateInUtc() throws Exception {
// String formatted = DateUtil.toDate(dateFromJochenInMillis);
// Assert.assertEquals(dateFromJochen, formatted);
// }
}