package org.gedcomx.fileformat; import org.testng.annotations.Test; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimeZone; import static org.testng.Assert.assertEquals; public class GedcomxTimeStampUtilTest { private static final TimeZone UTC_TIME_ZONE = TimeZone.getTimeZone("UTC"); @Test public void testFormatAsXmlUTC() throws Exception { SimpleDateFormat format1 = (SimpleDateFormat)DateFormat.getDateTimeInstance(); SimpleDateFormat format2 = (SimpleDateFormat)DateFormat.getDateTimeInstance(); SimpleDateFormat targetFormat = (SimpleDateFormat)DateFormat.getDateTimeInstance(); format1.applyPattern("d MMM yy"); format2.applyPattern("d MMM yy HH:mm:ss.SSS"); targetFormat.applyPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); targetFormat.setTimeZone(UTC_TIME_ZONE); Date myDate; String myDateFormatted; myDate = format1.parse("11 Nov 2011"); myDateFormatted = GedcomxTimeStampUtil.formatAsXmlUTC(myDate); assertEquals(myDateFormatted, targetFormat.format(myDate)); myDate = format2.parse("11 Nov 2011 11:11:11.111"); myDateFormatted = GedcomxTimeStampUtil.formatAsXmlUTC(myDate); assertEquals(myDateFormatted, targetFormat.format(myDate)); format1.setTimeZone(UTC_TIME_ZONE); format2.setTimeZone(UTC_TIME_ZONE); myDate = format1.parse("11 Nov 2011"); myDateFormatted = GedcomxTimeStampUtil.formatAsXmlUTC(myDate); assertEquals(myDateFormatted, "2011-11-11T00:00:00.000Z"); myDate = format2.parse("11 Nov 2011 11:11:11.111"); myDateFormatted = GedcomxTimeStampUtil.formatAsXmlUTC(myDate); assertEquals(myDateFormatted, "2011-11-11T11:11:11.111Z"); } }