You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2016/12/28 21:03:31 UTC

[2/9] incubator-juneau git commit: JUNEAU-26 - Add support for date localization.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bb650bde/juneau-core/src/test/java/org/apache/juneau/transforms/LocalizedDatesTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/transforms/LocalizedDatesTest.java b/juneau-core/src/test/java/org/apache/juneau/transforms/LocalizedDatesTest.java
new file mode 100644
index 0000000..913c9a4
--- /dev/null
+++ b/juneau-core/src/test/java/org/apache/juneau/transforms/LocalizedDatesTest.java
@@ -0,0 +1,635 @@
+// ***************************************************************************************************************************
+// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *
+// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *
+// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            *
+// * with the License.  You may obtain a copy of the License at                                                              *
+// *                                                                                                                         *
+// *  http://www.apache.org/licenses/LICENSE-2.0                                                                             *
+// *                                                                                                                         *
+// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *
+// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *
+// * specific language governing permissions and limitations under the License.                                              *
+// ***************************************************************************************************************************
+package org.apache.juneau.transforms;
+
+import static org.apache.juneau.BeanContext.*;
+import static org.junit.Assert.*;
+
+import java.util.*;
+
+import org.apache.juneau.*;
+import org.apache.juneau.transform.*;
+import org.junit.*;
+import org.junit.runner.*;
+import org.junit.runners.*;
+
+@RunWith(Parameterized.class)
+@SuppressWarnings("javadoc")
+public class LocalizedDatesTest {
+
+	private static Calendar testDate = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
+	static {
+		testDate.setTimeInMillis(0);
+		testDate.set(2001, 2, 3, 10, 11, 12);
+	}
+
+	@Parameterized.Parameters
+	public static Collection<Object[]> getParameters() {
+		return Arrays.asList(new Object[][] {
+
+			// CalendarSwap.ToString
+			{ "000", testDate, CalendarSwap.ToString.class, null, null, null, null, "Sat Mar 03 10:11:12 GMT 2001" },
+			{ "001", testDate, CalendarSwap.ToString.class, "ja_JP", null, null, null, "\u571f 3 03 10:11:12 GMT 2001" },
+			{ "002", testDate, CalendarSwap.ToString.class, Locale.JAPAN, null, null, null, "\u571f 3 03 10:11:12 GMT 2001" },
+			{ "003", testDate, CalendarSwap.ToString.class, null, Locale.JAPAN, null, null, "\u571f 3 03 10:11:12 GMT 2001" },
+			{ "004", testDate, CalendarSwap.ToString.class, "en_UK", Locale.JAPAN, null, null, "\u571f 3 03 10:11:12 GMT 2001" },
+			{ "005", testDate, CalendarSwap.ToString.class, "ja_JP", Locale.KOREA, null, null, "\ud1a0 3\uc6d4 03 10:11:12 GMT 2001" },
+			{ "006", testDate, CalendarSwap.ToString.class, "en_US", null, "PST", null, "Sat Mar 03 02:11:12 PST 2001" },
+			{ "007", testDate, CalendarSwap.ToString.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "Sat Mar 03 02:11:12 PST 2001" },
+			{ "008", testDate, CalendarSwap.ToString.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "Sat Mar 03 05:11:12 EST 2001" },
+			{ "009", testDate, CalendarSwap.ToString.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "Sat Mar 03 05:11:12 EST 2001" },
+
+			// CalendarSwap.ISO8601DT
+			{ "010", testDate, CalendarSwap.ISO8601DT.class, null, null, null, null, "2001-03-03T10:11:12Z" },
+			{ "011", testDate, CalendarSwap.ISO8601DT.class, "ja_JP", null, null, null, "2001-03-03T10:11:12Z" },
+			{ "012", testDate, CalendarSwap.ISO8601DT.class, Locale.JAPAN, null, null, null, "2001-03-03T10:11:12Z" },
+			{ "013", testDate, CalendarSwap.ISO8601DT.class, null, Locale.JAPAN, null, null, "2001-03-03T10:11:12Z" },
+			{ "014", testDate, CalendarSwap.ISO8601DT.class, "en_UK", Locale.JAPAN, null, null, "2001-03-03T10:11:12Z" },
+			{ "015", testDate, CalendarSwap.ISO8601DT.class, "ja_JP", Locale.KOREA, null, null, "2001-03-03T10:11:12Z" },
+			{ "016", testDate, CalendarSwap.ISO8601DT.class, "en_US", null, "PST", null, "2001-03-03T02:11:12-08:00" },
+			{ "017", testDate, CalendarSwap.ISO8601DT.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "2001-03-03T02:11:12-08:00" },
+			{ "018", testDate, CalendarSwap.ISO8601DT.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "2001-03-03T05:11:12-05:00" },
+			{ "019", testDate, CalendarSwap.ISO8601DT.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "2001-03-03T05:11:12-05:00" },
+
+			// CalendarSwap.ISO8601DTZ
+			{ "020", testDate, CalendarSwap.ISO8601DTZ.class, null, null, null, null, "2001-03-03T10:11:12Z" },
+			{ "021", testDate, CalendarSwap.ISO8601DTZ.class, "ja_JP", null, null, null, "2001-03-03T10:11:12Z" },
+			{ "022", testDate, CalendarSwap.ISO8601DTZ.class, Locale.JAPAN, null, null, null, "2001-03-03T10:11:12Z" },
+			{ "023", testDate, CalendarSwap.ISO8601DTZ.class, null, Locale.JAPAN, null, null, "2001-03-03T10:11:12Z" },
+			{ "024", testDate, CalendarSwap.ISO8601DTZ.class, "en_UK", Locale.JAPAN, null, null, "2001-03-03T10:11:12Z" },
+			{ "025", testDate, CalendarSwap.ISO8601DTZ.class, "ja_JP", Locale.KOREA, null, null, "2001-03-03T10:11:12Z" },
+			{ "026", testDate, CalendarSwap.ISO8601DTZ.class, "en_US", null, "PST", null, "2001-03-03T10:11:12Z" },
+			{ "027", testDate, CalendarSwap.ISO8601DTZ.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "2001-03-03T10:11:12Z" },
+			{ "028", testDate, CalendarSwap.ISO8601DTZ.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "2001-03-03T10:11:12Z" },
+			{ "029", testDate, CalendarSwap.ISO8601DTZ.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "2001-03-03T10:11:12Z" },
+
+			// CalendarSwap.ISO8601DTP
+			{ "030", testDate, CalendarSwap.ISO8601DTP.class, null, null, null, null, "2001-03-03T10:11:12.000Z" },
+			{ "031", testDate, CalendarSwap.ISO8601DTP.class, "ja_JP", null, null, null, "2001-03-03T10:11:12.000Z" },
+			{ "032", testDate, CalendarSwap.ISO8601DTP.class, Locale.JAPAN, null, null, null, "2001-03-03T10:11:12.000Z" },
+			{ "033", testDate, CalendarSwap.ISO8601DTP.class, null, Locale.JAPAN, null, null, "2001-03-03T10:11:12.000Z" },
+			{ "034", testDate, CalendarSwap.ISO8601DTP.class, "en_UK", Locale.JAPAN, null, null, "2001-03-03T10:11:12.000Z" },
+			{ "035", testDate, CalendarSwap.ISO8601DTP.class, "ja_JP", Locale.KOREA, null, null, "2001-03-03T10:11:12.000Z" },
+			{ "036", testDate, CalendarSwap.ISO8601DTP.class, "en_US", null, "PST", null, "2001-03-03T02:11:12.000-08:00" },
+			{ "037", testDate, CalendarSwap.ISO8601DTP.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "2001-03-03T02:11:12.000-08:00" },
+			{ "038", testDate, CalendarSwap.ISO8601DTP.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "2001-03-03T05:11:12.000-05:00" },
+			{ "039", testDate, CalendarSwap.ISO8601DTP.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "2001-03-03T05:11:12.000-05:00" },
+
+			// CalendarSwap.ISO8601DTPNZ
+			{ "040", testDate, CalendarSwap.ISO8601DTPZ.class, null, null, null, null, "2001-03-03T10:11:12.000Z" },
+			{ "041", testDate, CalendarSwap.ISO8601DTPZ.class, "ja_JP", null, null, null, "2001-03-03T10:11:12.000Z" },
+			{ "042", testDate, CalendarSwap.ISO8601DTPZ.class, Locale.JAPAN, null, null, null, "2001-03-03T10:11:12.000Z" },
+			{ "043", testDate, CalendarSwap.ISO8601DTPZ.class, null, Locale.JAPAN, null, null, "2001-03-03T10:11:12.000Z" },
+			{ "044", testDate, CalendarSwap.ISO8601DTPZ.class, "en_UK", Locale.JAPAN, null, null, "2001-03-03T10:11:12.000Z" },
+			{ "045", testDate, CalendarSwap.ISO8601DTPZ.class, "ja_JP", Locale.KOREA, null, null, "2001-03-03T10:11:12.000Z" },
+			{ "046", testDate, CalendarSwap.ISO8601DTPZ.class, "en_US", null, "PST", null, "2001-03-03T10:11:12.000Z" },
+			{ "047", testDate, CalendarSwap.ISO8601DTPZ.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "2001-03-03T10:11:12.000Z" },
+			{ "048", testDate, CalendarSwap.ISO8601DTPZ.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "2001-03-03T10:11:12.000Z" },
+			{ "049", testDate, CalendarSwap.ISO8601DTPZ.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "2001-03-03T10:11:12.000Z" },
+
+			// CalendarSwap.RFC2822DT
+			{ "050", testDate, CalendarSwap.RFC2822DT.class, null, null, null, null, "Sat, 03 Mar 2001 10:11:12 +0000" },
+			{ "051", testDate, CalendarSwap.RFC2822DT.class, "ja_JP", null, null, null, "\u571f, 03 3 2001 10:11:12 +0000" },
+			{ "052", testDate, CalendarSwap.RFC2822DT.class, Locale.JAPAN, null, null, null, "\u571f, 03 3 2001 10:11:12 +0000" },
+			{ "053", testDate, CalendarSwap.RFC2822DT.class, null, Locale.JAPAN, null, null, "\u571f, 03 3 2001 10:11:12 +0000" },
+			{ "054", testDate, CalendarSwap.RFC2822DT.class, "en_UK", Locale.JAPAN, null, null, "\u571f, 03 3 2001 10:11:12 +0000" },
+			{ "055", testDate, CalendarSwap.RFC2822DT.class, "ja_JP", Locale.KOREA, null, null, "\ud1a0, 03 3\uc6d4 2001 10:11:12 +0000" },
+			{ "056", testDate, CalendarSwap.RFC2822DT.class, "en_US", null, "PST", null, "Sat, 03 Mar 2001 02:11:12 -0800" },
+			{ "057", testDate, CalendarSwap.RFC2822DT.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "Sat, 03 Mar 2001 02:11:12 -0800" },
+			{ "058", testDate, CalendarSwap.RFC2822DT.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "Sat, 03 Mar 2001 05:11:12 -0500" },
+			{ "059", testDate, CalendarSwap.RFC2822DT.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "Sat, 03 Mar 2001 05:11:12 -0500" },
+
+			// CalendarSwap.RFC2822DTZ
+			{ "060", testDate, CalendarSwap.RFC2822DTZ.class, null, null, null, null, "Sat, 03 Mar 2001 10:11:12 GMT" },
+			{ "061", testDate, CalendarSwap.RFC2822DTZ.class, "ja_JP", null, null, null, "\u571f, 03 3 2001 10:11:12 GMT" },
+			{ "062", testDate, CalendarSwap.RFC2822DTZ.class, Locale.JAPAN, null, null, null, "\u571f, 03 3 2001 10:11:12 GMT" },
+			{ "063", testDate, CalendarSwap.RFC2822DTZ.class, null, Locale.JAPAN, null, null, "\u571f, 03 3 2001 10:11:12 GMT" },
+			{ "064", testDate, CalendarSwap.RFC2822DTZ.class, "en_UK", Locale.JAPAN, null, null, "\u571f, 03 3 2001 10:11:12 GMT" },
+			{ "065", testDate, CalendarSwap.RFC2822DTZ.class, "ja_JP", Locale.KOREA, null, null, "\ud1a0, 03 3\uc6d4 2001 10:11:12 GMT" },
+			{ "066", testDate, CalendarSwap.RFC2822DTZ.class, "en_US", null, "PST", null, "Sat, 03 Mar 2001 10:11:12 GMT" },
+			{ "067", testDate, CalendarSwap.RFC2822DTZ.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "Sat, 03 Mar 2001 10:11:12 GMT" },
+			{ "068", testDate, CalendarSwap.RFC2822DTZ.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "Sat, 03 Mar 2001 10:11:12 GMT" },
+			{ "069", testDate, CalendarSwap.RFC2822DTZ.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "Sat, 03 Mar 2001 10:11:12 GMT" },
+
+			// CalendarSwap.RFC2822D
+			{ "070", testDate, CalendarSwap.RFC2822D.class, null, null, null, null, "03 Mar 2001" },
+			{ "071", testDate, CalendarSwap.RFC2822D.class, "ja_JP", null, null, null, "03 3 2001" },
+			{ "072", testDate, CalendarSwap.RFC2822D.class, Locale.JAPAN, null, null, null, "03 3 2001" },
+			{ "073", testDate, CalendarSwap.RFC2822D.class, null, Locale.JAPAN, null, null, "03 3 2001" },
+			{ "074", testDate, CalendarSwap.RFC2822D.class, "en_UK", Locale.JAPAN, null, null, "03 3 2001" },
+			{ "075", testDate, CalendarSwap.RFC2822D.class, "ja_JP", Locale.KOREA, null, null, "03 3\uc6d4 2001" },
+			{ "076", testDate, CalendarSwap.RFC2822D.class, "en_US", null, "PST", null, "03 Mar 2001" },
+			{ "077", testDate, CalendarSwap.RFC2822D.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "03 Mar 2001" },
+			{ "078", testDate, CalendarSwap.RFC2822D.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "03 Mar 2001" },
+			{ "079", testDate, CalendarSwap.RFC2822D.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "03 Mar 2001" },
+
+			// CalendarSwap.DateSimple
+			{ "080", testDate, CalendarSwap.DateSimple.class, null, null, null, null, "2001/03/03" },
+			{ "081", testDate, CalendarSwap.DateSimple.class, "ja_JP", null, null, null, "2001/03/03" },
+			{ "082", testDate, CalendarSwap.DateSimple.class, Locale.JAPAN, null, null, null, "2001/03/03" },
+			{ "083", testDate, CalendarSwap.DateSimple.class, null, Locale.JAPAN, null, null, "2001/03/03" },
+			{ "084", testDate, CalendarSwap.DateSimple.class, "en_UK", Locale.JAPAN, null, null, "2001/03/03" },
+			{ "085", testDate, CalendarSwap.DateSimple.class, "ja_JP", Locale.KOREA, null, null, "2001/03/03" },
+			{ "086", testDate, CalendarSwap.DateSimple.class, "en_US", null, "PST", null, "2001/03/03" },
+			{ "087", testDate, CalendarSwap.DateSimple.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "2001/03/03" },
+			{ "088", testDate, CalendarSwap.DateSimple.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "2001/03/03" },
+			{ "089", testDate, CalendarSwap.DateSimple.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "2001/03/03" },
+
+			// CalendarSwap.TimeSimple
+			{ "090", testDate, CalendarSwap.TimeSimple.class, null, null, null, null, "10:11:12" },
+			{ "091", testDate, CalendarSwap.TimeSimple.class, "ja_JP", null, null, null, "10:11:12" },
+			{ "092", testDate, CalendarSwap.TimeSimple.class, Locale.JAPAN, null, null, null, "10:11:12" },
+			{ "093", testDate, CalendarSwap.TimeSimple.class, null, Locale.JAPAN, null, null, "10:11:12" },
+			{ "094", testDate, CalendarSwap.TimeSimple.class, "en_UK", Locale.JAPAN, null, null, "10:11:12" },
+			{ "095", testDate, CalendarSwap.TimeSimple.class, "ja_JP", Locale.KOREA, null, null, "10:11:12" },
+			{ "096", testDate, CalendarSwap.TimeSimple.class, "en_US", null, "PST", null, "02:11:12" },
+			{ "097", testDate, CalendarSwap.TimeSimple.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "02:11:12" },
+			{ "098", testDate, CalendarSwap.TimeSimple.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "05:11:12" },
+			{ "099", testDate, CalendarSwap.TimeSimple.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "05:11:12" },
+
+			// CalendarSwap.DateTimeSimple
+			{ "100", testDate, CalendarSwap.DateTimeSimple.class, null, null, null, null, "2001/03/03 10:11:12" },
+			{ "101", testDate, CalendarSwap.DateTimeSimple.class, "ja_JP", null, null, null, "2001/03/03 10:11:12" },
+			{ "102", testDate, CalendarSwap.DateTimeSimple.class, Locale.JAPAN, null, null, null, "2001/03/03 10:11:12" },
+			{ "103", testDate, CalendarSwap.DateTimeSimple.class, null, Locale.JAPAN, null, null, "2001/03/03 10:11:12" },
+			{ "104", testDate, CalendarSwap.DateTimeSimple.class, "en_UK", Locale.JAPAN, null, null, "2001/03/03 10:11:12" },
+			{ "105", testDate, CalendarSwap.DateTimeSimple.class, "ja_JP", Locale.KOREA, null, null, "2001/03/03 10:11:12" },
+			{ "106", testDate, CalendarSwap.DateTimeSimple.class, "en_US", null, "PST", null, "2001/03/03 02:11:12" },
+			{ "107", testDate, CalendarSwap.DateTimeSimple.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "2001/03/03 02:11:12" },
+			{ "108", testDate, CalendarSwap.DateTimeSimple.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "2001/03/03 05:11:12" },
+			{ "109", testDate, CalendarSwap.DateTimeSimple.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "2001/03/03 05:11:12" },
+
+			// CalendarSwap.DateFull
+			{ "110", testDate, CalendarSwap.DateFull.class, null, null, null, null, "Saturday, March 3, 2001" },
+			{ "111", testDate, CalendarSwap.DateFull.class, "ja_JP", null, null, null, "2001\u5e743\u67083\u65e5" },
+			{ "112", testDate, CalendarSwap.DateFull.class, Locale.JAPAN, null, null, null, "2001\u5e743\u67083\u65e5" },
+			{ "113", testDate, CalendarSwap.DateFull.class, null, Locale.JAPAN, null, null, "2001\u5e743\u67083\u65e5" },
+			{ "114", testDate, CalendarSwap.DateFull.class, "en_UK", Locale.JAPAN, null, null, "2001\u5e743\u67083\u65e5" },
+			{ "115", testDate, CalendarSwap.DateFull.class, "en_UK", Locale.KOREA, null, null, "2001\ub144 3\uc6d4 3\uc77c \ud1a0\uc694\uc77c" },
+			{ "116", testDate, CalendarSwap.DateFull.class, "en_US", null, "PST", null, "Saturday, March 3, 2001" },
+			{ "117", testDate, CalendarSwap.DateFull.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "Saturday, March 3, 2001" },
+			{ "118", testDate, CalendarSwap.DateFull.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "Saturday, March 3, 2001" },
+			{ "119", testDate, CalendarSwap.DateFull.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "Saturday, March 3, 2001" },
+
+			// CalendarSwap.DateLong
+			{ "120", testDate, CalendarSwap.DateLong.class, null, null, null, null, "March 3, 2001" },
+			{ "121", testDate, CalendarSwap.DateLong.class, "ja_JP", null, null, null, "2001/03/03" },
+			{ "122", testDate, CalendarSwap.DateLong.class, Locale.JAPAN, null, null, null, "2001/03/03" },
+			{ "123", testDate, CalendarSwap.DateLong.class, null, Locale.JAPAN, null, null, "2001/03/03" },
+			{ "124", testDate, CalendarSwap.DateLong.class, "en_UK", Locale.JAPAN, null, null, "2001/03/03" },
+			{ "125", testDate, CalendarSwap.DateLong.class, "en_UK", Locale.KOREA, null, null, "2001\ub144 3\uc6d4 3\uc77c (\ud1a0)" },
+			{ "126", testDate, CalendarSwap.DateLong.class, "en_US", null, "PST", null, "March 3, 2001" },
+			{ "127", testDate, CalendarSwap.DateLong.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "March 3, 2001" },
+			{ "128", testDate, CalendarSwap.DateLong.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "March 3, 2001" },
+			{ "129", testDate, CalendarSwap.DateLong.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "March 3, 2001" },
+
+			// CalendarSwap.DateMedium
+			{ "130", testDate, CalendarSwap.DateMedium.class, null, null, null, null, "Mar 3, 2001" },
+			{ "131", testDate, CalendarSwap.DateMedium.class, "ja_JP", null, null, null, "2001/03/03" },
+			{ "132", testDate, CalendarSwap.DateMedium.class, Locale.JAPAN, null, null, null, "2001/03/03" },
+			{ "133", testDate, CalendarSwap.DateMedium.class, null, Locale.JAPAN, null, null, "2001/03/03" },
+			{ "134", testDate, CalendarSwap.DateMedium.class, "en_UK", Locale.JAPAN, null, null, "2001/03/03" },
+			{ "135", testDate, CalendarSwap.DateMedium.class, "en_UK", Locale.KOREA, null, null, "2001. 3. 3" },
+			{ "136", testDate, CalendarSwap.DateMedium.class, "en_US", null, "PST", null, "Mar 3, 2001" },
+			{ "137", testDate, CalendarSwap.DateMedium.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "Mar 3, 2001" },
+			{ "138", testDate, CalendarSwap.DateMedium.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "Mar 3, 2001" },
+			{ "139", testDate, CalendarSwap.DateMedium.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "Mar 3, 2001" },
+
+			// CalendarSwap.DateShort
+			{ "140", testDate, CalendarSwap.DateShort.class, null, null, null, null, "3/3/01" },
+			{ "141", testDate, CalendarSwap.DateShort.class, "ja_JP", null, null, null, "01/03/03" },
+			{ "142", testDate, CalendarSwap.DateShort.class, Locale.JAPAN, null, null, null, "01/03/03" },
+			{ "143", testDate, CalendarSwap.DateShort.class, null, Locale.JAPAN, null, null, "01/03/03" },
+			{ "144", testDate, CalendarSwap.DateShort.class, "en_UK", Locale.JAPAN, null, null, "01/03/03" },
+			{ "145", testDate, CalendarSwap.DateShort.class, "en_UK", Locale.KOREA, null, null, "01. 3. 3" },
+			{ "146", testDate, CalendarSwap.DateShort.class, "en_US", null, "PST", null, "3/3/01" },
+			{ "147", testDate, CalendarSwap.DateShort.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "3/3/01" },
+			{ "148", testDate, CalendarSwap.DateShort.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "3/3/01" },
+			{ "149", testDate, CalendarSwap.DateShort.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "3/3/01" },
+
+			// CalendarSwap.TimeFull
+			{ "150", testDate, CalendarSwap.TimeFull.class, null, null, null, null, "10:11:12 AM GMT" },
+			{ "151", testDate, CalendarSwap.TimeFull.class, "ja_JP", null, null, null, "10\u664211\u520612\u79d2 GMT" },
+			{ "152", testDate, CalendarSwap.TimeFull.class, Locale.JAPAN, null, null, null, "10\u664211\u520612\u79d2 GMT" },
+			{ "153", testDate, CalendarSwap.TimeFull.class, null, Locale.JAPAN, null, null, "10\u664211\u520612\u79d2 GMT" },
+			{ "154", testDate, CalendarSwap.TimeFull.class, "en_UK", Locale.JAPAN, null, null, "10\u664211\u520612\u79d2 GMT" },
+			{ "155", testDate, CalendarSwap.TimeFull.class, "en_UK", Locale.KOREA, null, null, "\uc624\uc804 10\uc2dc 11\ubd84 12\ucd08 GMT" },
+			{ "156", testDate, CalendarSwap.TimeFull.class, "en_US", null, "PST", null, "2:11:12 AM PST" },
+			{ "157", testDate, CalendarSwap.TimeFull.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "2:11:12 AM PST" },
+			{ "158", testDate, CalendarSwap.TimeFull.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "5:11:12 AM EST" },
+			{ "159", testDate, CalendarSwap.TimeFull.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "5:11:12 AM EST" },
+
+			// CalendarSwap.TimeLong
+			{ "160", testDate, CalendarSwap.TimeLong.class, null, null, null, null, "10:11:12 AM GMT" },
+			{ "161", testDate, CalendarSwap.TimeLong.class, "ja_JP", null, null, null, "10:11:12 GMT" },
+			{ "162", testDate, CalendarSwap.TimeLong.class, Locale.JAPAN, null, null, null, "10:11:12 GMT" },
+			{ "163", testDate, CalendarSwap.TimeLong.class, null, Locale.JAPAN, null, null, "10:11:12 GMT" },
+			{ "164", testDate, CalendarSwap.TimeLong.class, "en_UK", Locale.JAPAN, null, null, "10:11:12 GMT" },
+			{ "165", testDate, CalendarSwap.TimeLong.class, "en_UK", Locale.KOREA, null, null, "\uc624\uc804 10\uc2dc 11\ubd84 12\ucd08" },
+			{ "166", testDate, CalendarSwap.TimeLong.class, "en_US", null, "PST", null, "2:11:12 AM PST" },
+			{ "167", testDate, CalendarSwap.TimeLong.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "2:11:12 AM PST" },
+			{ "168", testDate, CalendarSwap.TimeLong.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "5:11:12 AM EST" },
+			{ "169", testDate, CalendarSwap.TimeLong.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "5:11:12 AM EST" },
+
+			// CalendarSwap.TimeMedium
+			{ "170", testDate, CalendarSwap.TimeMedium.class, null, null, null, null, "10:11:12 AM" },
+			{ "171", testDate, CalendarSwap.TimeMedium.class, "ja_JP", null, null, null, "10:11:12" },
+			{ "172", testDate, CalendarSwap.TimeMedium.class, Locale.JAPAN, null, null, null, "10:11:12" },
+			{ "173", testDate, CalendarSwap.TimeMedium.class, null, Locale.JAPAN, null, null, "10:11:12" },
+			{ "174", testDate, CalendarSwap.TimeMedium.class, "en_UK", Locale.JAPAN, null, null, "10:11:12" },
+			{ "175", testDate, CalendarSwap.TimeMedium.class, "en_UK", Locale.KOREA, null, null, "\uc624\uc804 10:11:12" },
+			{ "176", testDate, CalendarSwap.TimeMedium.class, "en_US", null, "PST", null, "2:11:12 AM" },
+			{ "177", testDate, CalendarSwap.TimeMedium.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "2:11:12 AM" },
+			{ "178", testDate, CalendarSwap.TimeMedium.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "5:11:12 AM" },
+			{ "179", testDate, CalendarSwap.TimeMedium.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "5:11:12 AM" },
+
+			// CalendarSwap.TimeShort
+			{ "180", testDate, CalendarSwap.TimeShort.class, null, null, null, null, "10:11 AM" },
+			{ "181", testDate, CalendarSwap.TimeShort.class, "ja_JP", null, null, null, "10:11" },
+			{ "182", testDate, CalendarSwap.TimeShort.class, Locale.JAPAN, null, null, null, "10:11" },
+			{ "183", testDate, CalendarSwap.TimeShort.class, null, Locale.JAPAN, null, null, "10:11" },
+			{ "184", testDate, CalendarSwap.TimeShort.class, "en_UK", Locale.JAPAN, null, null, "10:11" },
+			{ "185", testDate, CalendarSwap.TimeShort.class, "en_UK", Locale.KOREA, null, null, "\uc624\uc804 10:11" },
+			{ "186", testDate, CalendarSwap.TimeShort.class, "en_US", null, "PST", null, "2:11 AM" },
+			{ "187", testDate, CalendarSwap.TimeShort.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "2:11 AM" },
+			{ "188", testDate, CalendarSwap.TimeShort.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "5:11 AM" },
+			{ "189", testDate, CalendarSwap.TimeShort.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "5:11 AM" },
+
+			// CalendarSwap.DateTimeFull
+			{ "190", testDate, CalendarSwap.DateTimeFull.class, null, null, null, null, "Saturday, March 3, 2001 10:11:12 AM GMT" },
+			{ "191", testDate, CalendarSwap.DateTimeFull.class, "ja_JP", null, null, null, "2001\u5e743\u67083\u65e5 10\u664211\u520612\u79d2 GMT" },
+			{ "192", testDate, CalendarSwap.DateTimeFull.class, Locale.JAPAN, null, null, null, "2001\u5e743\u67083\u65e5 10\u664211\u520612\u79d2 GMT" },
+			{ "193", testDate, CalendarSwap.DateTimeFull.class, null, Locale.JAPAN, null, null, "2001\u5e743\u67083\u65e5 10\u664211\u520612\u79d2 GMT" },
+			{ "194", testDate, CalendarSwap.DateTimeFull.class, "en_UK", Locale.JAPAN, null, null, "2001\u5e743\u67083\u65e5 10\u664211\u520612\u79d2 GMT" },
+			{ "195", testDate, CalendarSwap.DateTimeFull.class, "en_UK", Locale.KOREA, null, null, "2001\ub144 3\uc6d4 3\uc77c \ud1a0\uc694\uc77c \uc624\uc804 10\uc2dc 11\ubd84 12\ucd08 GMT" },
+			{ "196", testDate, CalendarSwap.DateTimeFull.class, "en_US", null, "PST", null, "Saturday, March 3, 2001 2:11:12 AM PST" },
+			{ "197", testDate, CalendarSwap.DateTimeFull.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "Saturday, March 3, 2001 2:11:12 AM PST" },
+			{ "198", testDate, CalendarSwap.DateTimeFull.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "Saturday, March 3, 2001 5:11:12 AM EST" },
+			{ "199", testDate, CalendarSwap.DateTimeFull.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "Saturday, March 3, 2001 5:11:12 AM EST" },
+
+			// CalendarSwap.DateTimeLong
+			{ "200", testDate, CalendarSwap.DateTimeLong.class, null, null, null, null, "March 3, 2001 10:11:12 AM GMT" },
+			{ "201", testDate, CalendarSwap.DateTimeLong.class, "ja_JP", null, null, null, "2001/03/03 10:11:12 GMT" },
+			{ "202", testDate, CalendarSwap.DateTimeLong.class, Locale.JAPAN, null, null, null, "2001/03/03 10:11:12 GMT" },
+			{ "203", testDate, CalendarSwap.DateTimeLong.class, null, Locale.JAPAN, null, null, "2001/03/03 10:11:12 GMT" },
+			{ "204", testDate, CalendarSwap.DateTimeLong.class, "en_UK", Locale.JAPAN, null, null, "2001/03/03 10:11:12 GMT" },
+			{ "205", testDate, CalendarSwap.DateTimeLong.class, "en_UK", Locale.KOREA, null, null, "2001\ub144 3\uc6d4 3\uc77c (\ud1a0) \uc624\uc804 10\uc2dc 11\ubd84 12\ucd08" },
+			{ "206", testDate, CalendarSwap.DateTimeLong.class, "en_US", null, "PST", null, "March 3, 2001 2:11:12 AM PST" },
+			{ "207", testDate, CalendarSwap.DateTimeLong.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "March 3, 2001 2:11:12 AM PST" },
+			{ "208", testDate, CalendarSwap.DateTimeLong.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "March 3, 2001 5:11:12 AM EST" },
+			{ "209", testDate, CalendarSwap.DateTimeLong.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "March 3, 2001 5:11:12 AM EST" },
+
+			// CalendarSwap.DateTimeMedium
+			{ "210", testDate, CalendarSwap.DateTimeMedium.class, null, null, null, null, "Mar 3, 2001 10:11:12 AM" },
+			{ "211", testDate, CalendarSwap.DateTimeMedium.class, "ja_JP", null, null, null, "2001/03/03 10:11:12" },
+			{ "212", testDate, CalendarSwap.DateTimeMedium.class, Locale.JAPAN, null, null, null, "2001/03/03 10:11:12" },
+			{ "213", testDate, CalendarSwap.DateTimeMedium.class, null, Locale.JAPAN, null, null, "2001/03/03 10:11:12" },
+			{ "214", testDate, CalendarSwap.DateTimeMedium.class, "en_UK", Locale.JAPAN, null, null, "2001/03/03 10:11:12" },
+			{ "215", testDate, CalendarSwap.DateTimeMedium.class, "en_UK", Locale.KOREA, null, null, "2001. 3. 3 \uc624\uc804 10:11:12" },
+			{ "216", testDate, CalendarSwap.DateTimeMedium.class, "en_US", null, "PST", null, "Mar 3, 2001 2:11:12 AM" },
+			{ "217", testDate, CalendarSwap.DateTimeMedium.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "Mar 3, 2001 2:11:12 AM" },
+			{ "218", testDate, CalendarSwap.DateTimeMedium.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "Mar 3, 2001 5:11:12 AM" },
+			{ "219", testDate, CalendarSwap.DateTimeMedium.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "Mar 3, 2001 5:11:12 AM" },
+
+			// CalendarSwap.DateTimeShort
+			{ "220", testDate, CalendarSwap.DateTimeShort.class, null, null, null, null, "3/3/01 10:11 AM" },
+			{ "221", testDate, CalendarSwap.DateTimeShort.class, "ja_JP", null, null, null, "01/03/03 10:11" },
+			{ "222", testDate, CalendarSwap.DateTimeShort.class, Locale.JAPAN, null, null, null, "01/03/03 10:11" },
+			{ "223", testDate, CalendarSwap.DateTimeShort.class, null, Locale.JAPAN, null, null, "01/03/03 10:11" },
+			{ "224", testDate, CalendarSwap.DateTimeShort.class, "en_UK", Locale.JAPAN, null, null, "01/03/03 10:11" },
+			{ "225", testDate, CalendarSwap.DateTimeShort.class, "en_UK", Locale.KOREA, null, null, "01. 3. 3 \uc624\uc804 10:11" },
+			{ "226", testDate, CalendarSwap.DateTimeShort.class, "en_US", null, "PST", null, "3/3/01 2:11 AM" },
+			{ "227", testDate, CalendarSwap.DateTimeShort.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "3/3/01 2:11 AM" },
+			{ "228", testDate, CalendarSwap.DateTimeShort.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "3/3/01 5:11 AM" },
+			{ "229", testDate, CalendarSwap.DateTimeShort.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "3/3/01 5:11 AM" },
+
+			// DateSwap.ToString
+			{ "230", testDate.getTime(), DateSwap.ToString.class, null, null, null, null, "Sat Mar 03 10:11:12 GMT 2001" },
+			{ "231", testDate.getTime(), DateSwap.ToString.class, "ja_JP", null, null, null, "\u571f 3 03 10:11:12 GMT 2001" },
+			{ "232", testDate.getTime(), DateSwap.ToString.class, Locale.JAPAN, null, null, null, "\u571f 3 03 10:11:12 GMT 2001" },
+			{ "233", testDate.getTime(), DateSwap.ToString.class, null, Locale.JAPAN, null, null, "\u571f 3 03 10:11:12 GMT 2001" },
+			{ "234", testDate.getTime(), DateSwap.ToString.class, "en_UK", Locale.JAPAN, null, null, "\u571f 3 03 10:11:12 GMT 2001" },
+			{ "235", testDate.getTime(), DateSwap.ToString.class, "ja_JP", Locale.KOREA, null, null, "\ud1a0 3\uc6d4 03 10:11:12 GMT 2001" },
+			{ "236", testDate.getTime(), DateSwap.ToString.class, "en_US", null, "PST", null, "Sat Mar 03 02:11:12 PST 2001" },
+			{ "237", testDate.getTime(), DateSwap.ToString.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "Sat Mar 03 02:11:12 PST 2001" },
+			{ "238", testDate.getTime(), DateSwap.ToString.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "Sat Mar 03 05:11:12 EST 2001" },
+			{ "239", testDate.getTime(), DateSwap.ToString.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "Sat Mar 03 05:11:12 EST 2001" },
+
+			// DateSwap.ISO8601DT
+			{ "240", testDate.getTime(), DateSwap.ISO8601DT.class, null, null, null, null, "2001-03-03T10:11:12Z" },
+			{ "241", testDate.getTime(), DateSwap.ISO8601DT.class, "ja_JP", null, null, null, "2001-03-03T10:11:12Z" },
+			{ "242", testDate.getTime(), DateSwap.ISO8601DT.class, Locale.JAPAN, null, null, null, "2001-03-03T10:11:12Z" },
+			{ "243", testDate.getTime(), DateSwap.ISO8601DT.class, null, Locale.JAPAN, null, null, "2001-03-03T10:11:12Z" },
+			{ "244", testDate.getTime(), DateSwap.ISO8601DT.class, "en_UK", Locale.JAPAN, null, null, "2001-03-03T10:11:12Z" },
+			{ "245", testDate.getTime(), DateSwap.ISO8601DT.class, "ja_JP", Locale.KOREA, null, null, "2001-03-03T10:11:12Z" },
+			{ "246", testDate.getTime(), DateSwap.ISO8601DT.class, "en_US", null, "PST", null, "2001-03-03T02:11:12-08:00" },
+			{ "247", testDate.getTime(), DateSwap.ISO8601DT.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "2001-03-03T02:11:12-08:00" },
+			{ "248", testDate.getTime(), DateSwap.ISO8601DT.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "2001-03-03T05:11:12-05:00" },
+			{ "249", testDate.getTime(), DateSwap.ISO8601DT.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "2001-03-03T05:11:12-05:00" },
+
+			// DateSwap.ISO8601DTZ
+			{ "250", testDate.getTime(), DateSwap.ISO8601DTZ.class, null, null, null, null, "2001-03-03T10:11:12Z" },
+			{ "251", testDate.getTime(), DateSwap.ISO8601DTZ.class, "ja_JP", null, null, null, "2001-03-03T10:11:12Z" },
+			{ "252", testDate.getTime(), DateSwap.ISO8601DTZ.class, Locale.JAPAN, null, null, null, "2001-03-03T10:11:12Z" },
+			{ "253", testDate.getTime(), DateSwap.ISO8601DTZ.class, null, Locale.JAPAN, null, null, "2001-03-03T10:11:12Z" },
+			{ "254", testDate.getTime(), DateSwap.ISO8601DTZ.class, "en_UK", Locale.JAPAN, null, null, "2001-03-03T10:11:12Z" },
+			{ "255", testDate.getTime(), DateSwap.ISO8601DTZ.class, "ja_JP", Locale.KOREA, null, null, "2001-03-03T10:11:12Z" },
+			{ "256", testDate.getTime(), DateSwap.ISO8601DTZ.class, "en_US", null, "PST", null, "2001-03-03T10:11:12Z" },
+			{ "257", testDate.getTime(), DateSwap.ISO8601DTZ.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "2001-03-03T10:11:12Z" },
+			{ "258", testDate.getTime(), DateSwap.ISO8601DTZ.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "2001-03-03T10:11:12Z" },
+			{ "259", testDate.getTime(), DateSwap.ISO8601DTZ.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "2001-03-03T10:11:12Z" },
+
+			// DateSwap.ISO8601DTP
+			{ "260", testDate.getTime(), DateSwap.ISO8601DTP.class, null, null, null, null, "2001-03-03T10:11:12.000Z" },
+			{ "261", testDate.getTime(), DateSwap.ISO8601DTP.class, "ja_JP", null, null, null, "2001-03-03T10:11:12.000Z" },
+			{ "262", testDate.getTime(), DateSwap.ISO8601DTP.class, Locale.JAPAN, null, null, null, "2001-03-03T10:11:12.000Z" },
+			{ "263", testDate.getTime(), DateSwap.ISO8601DTP.class, null, Locale.JAPAN, null, null, "2001-03-03T10:11:12.000Z" },
+			{ "264", testDate.getTime(), DateSwap.ISO8601DTP.class, "en_UK", Locale.JAPAN, null, null, "2001-03-03T10:11:12.000Z" },
+			{ "265", testDate.getTime(), DateSwap.ISO8601DTP.class, "ja_JP", Locale.KOREA, null, null, "2001-03-03T10:11:12.000Z" },
+			{ "266", testDate.getTime(), DateSwap.ISO8601DTP.class, "en_US", null, "PST", null, "2001-03-03T02:11:12.000-08:00" },
+			{ "267", testDate.getTime(), DateSwap.ISO8601DTP.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "2001-03-03T02:11:12.000-08:00" },
+			{ "268", testDate.getTime(), DateSwap.ISO8601DTP.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "2001-03-03T05:11:12.000-05:00" },
+			{ "269", testDate.getTime(), DateSwap.ISO8601DTP.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "2001-03-03T05:11:12.000-05:00" },
+
+			// DateSwap.ISO8601DTPNZ
+			{ "270", testDate.getTime(), DateSwap.ISO8601DTPZ.class, null, null, null, null, "2001-03-03T10:11:12.000Z" },
+			{ "271", testDate.getTime(), DateSwap.ISO8601DTPZ.class, "ja_JP", null, null, null, "2001-03-03T10:11:12.000Z" },
+			{ "272", testDate.getTime(), DateSwap.ISO8601DTPZ.class, Locale.JAPAN, null, null, null, "2001-03-03T10:11:12.000Z" },
+			{ "273", testDate.getTime(), DateSwap.ISO8601DTPZ.class, null, Locale.JAPAN, null, null, "2001-03-03T10:11:12.000Z" },
+			{ "274", testDate.getTime(), DateSwap.ISO8601DTPZ.class, "en_UK", Locale.JAPAN, null, null, "2001-03-03T10:11:12.000Z" },
+			{ "275", testDate.getTime(), DateSwap.ISO8601DTPZ.class, "ja_JP", Locale.KOREA, null, null, "2001-03-03T10:11:12.000Z" },
+			{ "276", testDate.getTime(), DateSwap.ISO8601DTPZ.class, "en_US", null, "PST", null, "2001-03-03T10:11:12.000Z" },
+			{ "277", testDate.getTime(), DateSwap.ISO8601DTPZ.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "2001-03-03T10:11:12.000Z" },
+			{ "278", testDate.getTime(), DateSwap.ISO8601DTPZ.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "2001-03-03T10:11:12.000Z" },
+			{ "279", testDate.getTime(), DateSwap.ISO8601DTPZ.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "2001-03-03T10:11:12.000Z" },
+
+			// DateSwap.RFC2822DT
+			{ "280", testDate.getTime(), DateSwap.RFC2822DT.class, null, null, null, null, "Sat, 03 Mar 2001 10:11:12 +0000" },
+			{ "281", testDate.getTime(), DateSwap.RFC2822DT.class, "ja_JP", null, null, null, "\u571f, 03 3 2001 10:11:12 +0000" },
+			{ "282", testDate.getTime(), DateSwap.RFC2822DT.class, Locale.JAPAN, null, null, null, "\u571f, 03 3 2001 10:11:12 +0000" },
+			{ "283", testDate.getTime(), DateSwap.RFC2822DT.class, null, Locale.JAPAN, null, null, "\u571f, 03 3 2001 10:11:12 +0000" },
+			{ "284", testDate.getTime(), DateSwap.RFC2822DT.class, "en_UK", Locale.JAPAN, null, null, "\u571f, 03 3 2001 10:11:12 +0000" },
+			{ "285", testDate.getTime(), DateSwap.RFC2822DT.class, "ja_JP", Locale.KOREA, null, null, "\ud1a0, 03 3\uc6d4 2001 10:11:12 +0000" },
+			{ "286", testDate.getTime(), DateSwap.RFC2822DT.class, "en_US", null, "PST", null, "Sat, 03 Mar 2001 02:11:12 -0800" },
+			{ "287", testDate.getTime(), DateSwap.RFC2822DT.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "Sat, 03 Mar 2001 02:11:12 -0800" },
+			{ "288", testDate.getTime(), DateSwap.RFC2822DT.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "Sat, 03 Mar 2001 05:11:12 -0500" },
+			{ "289", testDate.getTime(), DateSwap.RFC2822DT.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "Sat, 03 Mar 2001 05:11:12 -0500" },
+
+			// DateSwap.RFC2822DTZ
+			{ "290", testDate.getTime(), DateSwap.RFC2822DTZ.class, null, null, null, null, "Sat, 03 Mar 2001 10:11:12 GMT" },
+			{ "291", testDate.getTime(), DateSwap.RFC2822DTZ.class, "ja_JP", null, null, null, "\u571f, 03 3 2001 10:11:12 GMT" },
+			{ "292", testDate.getTime(), DateSwap.RFC2822DTZ.class, Locale.JAPAN, null, null, null, "\u571f, 03 3 2001 10:11:12 GMT" },
+			{ "293", testDate.getTime(), DateSwap.RFC2822DTZ.class, null, Locale.JAPAN, null, null, "\u571f, 03 3 2001 10:11:12 GMT" },
+			{ "294", testDate.getTime(), DateSwap.RFC2822DTZ.class, "en_UK", Locale.JAPAN, null, null, "\u571f, 03 3 2001 10:11:12 GMT" },
+			{ "295", testDate.getTime(), DateSwap.RFC2822DTZ.class, "ja_JP", Locale.KOREA, null, null, "\ud1a0, 03 3\uc6d4 2001 10:11:12 GMT" },
+			{ "296", testDate.getTime(), DateSwap.RFC2822DTZ.class, "en_US", null, "PST", null, "Sat, 03 Mar 2001 10:11:12 GMT" },
+			{ "297", testDate.getTime(), DateSwap.RFC2822DTZ.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "Sat, 03 Mar 2001 10:11:12 GMT" },
+			{ "298", testDate.getTime(), DateSwap.RFC2822DTZ.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "Sat, 03 Mar 2001 10:11:12 GMT" },
+			{ "299", testDate.getTime(), DateSwap.RFC2822DTZ.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "Sat, 03 Mar 2001 10:11:12 GMT" },
+
+			// DateSwap.RFC2822D
+			{ "300", testDate.getTime(), DateSwap.RFC2822D.class, null, null, null, null, "03 Mar 2001" },
+			{ "301", testDate.getTime(), DateSwap.RFC2822D.class, "ja_JP", null, null, null, "03 3 2001" },
+			{ "302", testDate.getTime(), DateSwap.RFC2822D.class, Locale.JAPAN, null, null, null, "03 3 2001" },
+			{ "303", testDate.getTime(), DateSwap.RFC2822D.class, null, Locale.JAPAN, null, null, "03 3 2001" },
+			{ "304", testDate.getTime(), DateSwap.RFC2822D.class, "en_UK", Locale.JAPAN, null, null, "03 3 2001" },
+			{ "305", testDate.getTime(), DateSwap.RFC2822D.class, "ja_JP", Locale.KOREA, null, null, "03 3\uc6d4 2001" },
+			{ "306", testDate.getTime(), DateSwap.RFC2822D.class, "en_US", null, "PST", null, "03 Mar 2001" },
+			{ "307", testDate.getTime(), DateSwap.RFC2822D.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "03 Mar 2001" },
+			{ "308", testDate.getTime(), DateSwap.RFC2822D.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "03 Mar 2001" },
+			{ "309", testDate.getTime(), DateSwap.RFC2822D.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "03 Mar 2001" },
+
+			// DateSwap.DateSimple
+			{ "310", testDate.getTime(), DateSwap.DateSimple.class, null, null, null, null, "2001/03/03" },
+			{ "311", testDate.getTime(), DateSwap.DateSimple.class, "ja_JP", null, null, null, "2001/03/03" },
+			{ "312", testDate.getTime(), DateSwap.DateSimple.class, Locale.JAPAN, null, null, null, "2001/03/03" },
+			{ "313", testDate.getTime(), DateSwap.DateSimple.class, null, Locale.JAPAN, null, null, "2001/03/03" },
+			{ "314", testDate.getTime(), DateSwap.DateSimple.class, "en_UK", Locale.JAPAN, null, null, "2001/03/03" },
+			{ "315", testDate.getTime(), DateSwap.DateSimple.class, "ja_JP", Locale.KOREA, null, null, "2001/03/03" },
+			{ "316", testDate.getTime(), DateSwap.DateSimple.class, "en_US", null, "PST", null, "2001/03/03" },
+			{ "317", testDate.getTime(), DateSwap.DateSimple.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "2001/03/03" },
+			{ "318", testDate.getTime(), DateSwap.DateSimple.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "2001/03/03" },
+			{ "319", testDate.getTime(), DateSwap.DateSimple.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "2001/03/03" },
+
+			// DateSwap.TimeSimple
+			{ "320", testDate.getTime(), DateSwap.TimeSimple.class, null, null, null, null, "10:11:12" },
+			{ "321", testDate.getTime(), DateSwap.TimeSimple.class, "ja_JP", null, null, null, "10:11:12" },
+			{ "322", testDate.getTime(), DateSwap.TimeSimple.class, Locale.JAPAN, null, null, null, "10:11:12" },
+			{ "323", testDate.getTime(), DateSwap.TimeSimple.class, null, Locale.JAPAN, null, null, "10:11:12" },
+			{ "324", testDate.getTime(), DateSwap.TimeSimple.class, "en_UK", Locale.JAPAN, null, null, "10:11:12" },
+			{ "325", testDate.getTime(), DateSwap.TimeSimple.class, "ja_JP", Locale.KOREA, null, null, "10:11:12" },
+			{ "326", testDate.getTime(), DateSwap.TimeSimple.class, "en_US", null, "PST", null, "02:11:12" },
+			{ "327", testDate.getTime(), DateSwap.TimeSimple.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "02:11:12" },
+			{ "328", testDate.getTime(), DateSwap.TimeSimple.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "05:11:12" },
+			{ "329", testDate.getTime(), DateSwap.TimeSimple.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "05:11:12" },
+
+			// DateSwap.DateTimeSimple
+			{ "330", testDate.getTime(), DateSwap.DateTimeSimple.class, null, null, null, null, "2001/03/03 10:11:12" },
+			{ "331", testDate.getTime(), DateSwap.DateTimeSimple.class, "ja_JP", null, null, null, "2001/03/03 10:11:12" },
+			{ "332", testDate.getTime(), DateSwap.DateTimeSimple.class, Locale.JAPAN, null, null, null, "2001/03/03 10:11:12" },
+			{ "333", testDate.getTime(), DateSwap.DateTimeSimple.class, null, Locale.JAPAN, null, null, "2001/03/03 10:11:12" },
+			{ "334", testDate.getTime(), DateSwap.DateTimeSimple.class, "en_UK", Locale.JAPAN, null, null, "2001/03/03 10:11:12" },
+			{ "335", testDate.getTime(), DateSwap.DateTimeSimple.class, "ja_JP", Locale.KOREA, null, null, "2001/03/03 10:11:12" },
+			{ "336", testDate.getTime(), DateSwap.DateTimeSimple.class, "en_US", null, "PST", null, "2001/03/03 02:11:12" },
+			{ "337", testDate.getTime(), DateSwap.DateTimeSimple.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "2001/03/03 02:11:12" },
+			{ "338", testDate.getTime(), DateSwap.DateTimeSimple.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "2001/03/03 05:11:12" },
+			{ "339", testDate.getTime(), DateSwap.DateTimeSimple.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "2001/03/03 05:11:12" },
+
+			// DateSwap.DateFull
+			{ "340", testDate.getTime(), DateSwap.DateFull.class, null, null, null, null, "Saturday, March 3, 2001" },
+			{ "341", testDate.getTime(), DateSwap.DateFull.class, "ja_JP", null, null, null, "2001\u5e743\u67083\u65e5" },
+			{ "342", testDate.getTime(), DateSwap.DateFull.class, Locale.JAPAN, null, null, null, "2001\u5e743\u67083\u65e5" },
+			{ "343", testDate.getTime(), DateSwap.DateFull.class, null, Locale.JAPAN, null, null, "2001\u5e743\u67083\u65e5" },
+			{ "344", testDate.getTime(), DateSwap.DateFull.class, "en_UK", Locale.JAPAN, null, null, "2001\u5e743\u67083\u65e5" },
+			{ "345", testDate.getTime(), DateSwap.DateFull.class, "en_UK", Locale.KOREA, null, null, "2001\ub144 3\uc6d4 3\uc77c \ud1a0\uc694\uc77c" },
+			{ "346", testDate.getTime(), DateSwap.DateFull.class, "en_US", null, "PST", null, "Saturday, March 3, 2001" },
+			{ "347", testDate.getTime(), DateSwap.DateFull.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "Saturday, March 3, 2001" },
+			{ "348", testDate.getTime(), DateSwap.DateFull.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "Saturday, March 3, 2001" },
+			{ "349", testDate.getTime(), DateSwap.DateFull.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "Saturday, March 3, 2001" },
+
+			// DateSwap.DateLong
+			{ "350", testDate.getTime(), DateSwap.DateLong.class, null, null, null, null, "March 3, 2001" },
+			{ "351", testDate.getTime(), DateSwap.DateLong.class, "ja_JP", null, null, null, "2001/03/03" },
+			{ "352", testDate.getTime(), DateSwap.DateLong.class, Locale.JAPAN, null, null, null, "2001/03/03" },
+			{ "353", testDate.getTime(), DateSwap.DateLong.class, null, Locale.JAPAN, null, null, "2001/03/03" },
+			{ "354", testDate.getTime(), DateSwap.DateLong.class, "en_UK", Locale.JAPAN, null, null, "2001/03/03" },
+			{ "355", testDate.getTime(), DateSwap.DateLong.class, "en_UK", Locale.KOREA, null, null, "2001\ub144 3\uc6d4 3\uc77c (\ud1a0)" },
+			{ "356", testDate.getTime(), DateSwap.DateLong.class, "en_US", null, "PST", null, "March 3, 2001" },
+			{ "357", testDate.getTime(), DateSwap.DateLong.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "March 3, 2001" },
+			{ "358", testDate.getTime(), DateSwap.DateLong.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "March 3, 2001" },
+			{ "359", testDate.getTime(), DateSwap.DateLong.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "March 3, 2001" },
+
+			// DateSwap.DateMedium
+			{ "360", testDate.getTime(), DateSwap.DateMedium.class, null, null, null, null, "Mar 3, 2001" },
+			{ "361", testDate.getTime(), DateSwap.DateMedium.class, "ja_JP", null, null, null, "2001/03/03" },
+			{ "362", testDate.getTime(), DateSwap.DateMedium.class, Locale.JAPAN, null, null, null, "2001/03/03" },
+			{ "363", testDate.getTime(), DateSwap.DateMedium.class, null, Locale.JAPAN, null, null, "2001/03/03" },
+			{ "364", testDate.getTime(), DateSwap.DateMedium.class, "en_UK", Locale.JAPAN, null, null, "2001/03/03" },
+			{ "365", testDate.getTime(), DateSwap.DateMedium.class, "en_UK", Locale.KOREA, null, null, "2001. 3. 3" },
+			{ "366", testDate.getTime(), DateSwap.DateMedium.class, "en_US", null, "PST", null, "Mar 3, 2001" },
+			{ "367", testDate.getTime(), DateSwap.DateMedium.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "Mar 3, 2001" },
+			{ "368", testDate.getTime(), DateSwap.DateMedium.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "Mar 3, 2001" },
+			{ "369", testDate.getTime(), DateSwap.DateMedium.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "Mar 3, 2001" },
+
+			// DateSwap.DateShort
+			{ "370", testDate.getTime(), DateSwap.DateShort.class, null, null, null, null, "3/3/01" },
+			{ "371", testDate.getTime(), DateSwap.DateShort.class, "ja_JP", null, null, null, "01/03/03" },
+			{ "372", testDate.getTime(), DateSwap.DateShort.class, Locale.JAPAN, null, null, null, "01/03/03" },
+			{ "373", testDate.getTime(), DateSwap.DateShort.class, null, Locale.JAPAN, null, null, "01/03/03" },
+			{ "374", testDate.getTime(), DateSwap.DateShort.class, "en_UK", Locale.JAPAN, null, null, "01/03/03" },
+			{ "375", testDate.getTime(), DateSwap.DateShort.class, "en_UK", Locale.KOREA, null, null, "01. 3. 3" },
+			{ "376", testDate.getTime(), DateSwap.DateShort.class, "en_US", null, "PST", null, "3/3/01" },
+			{ "377", testDate.getTime(), DateSwap.DateShort.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "3/3/01" },
+			{ "378", testDate.getTime(), DateSwap.DateShort.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "3/3/01" },
+			{ "379", testDate.getTime(), DateSwap.DateShort.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "3/3/01" },
+
+			// DateSwap.TimeFull
+			{ "380", testDate.getTime(), DateSwap.TimeFull.class, null, null, null, null, "10:11:12 AM GMT" },
+			{ "381", testDate.getTime(), DateSwap.TimeFull.class, "ja_JP", null, null, null, "10\u664211\u520612\u79d2 GMT" },
+			{ "382", testDate.getTime(), DateSwap.TimeFull.class, Locale.JAPAN, null, null, null, "10\u664211\u520612\u79d2 GMT" },
+			{ "383", testDate.getTime(), DateSwap.TimeFull.class, null, Locale.JAPAN, null, null, "10\u664211\u520612\u79d2 GMT" },
+			{ "384", testDate.getTime(), DateSwap.TimeFull.class, "en_UK", Locale.JAPAN, null, null, "10\u664211\u520612\u79d2 GMT" },
+			{ "385", testDate.getTime(), DateSwap.TimeFull.class, "en_UK", Locale.KOREA, null, null, "\uc624\uc804 10\uc2dc 11\ubd84 12\ucd08 GMT" },
+			{ "386", testDate.getTime(), DateSwap.TimeFull.class, "en_US", null, "PST", null, "2:11:12 AM PST" },
+			{ "387", testDate.getTime(), DateSwap.TimeFull.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "2:11:12 AM PST" },
+			{ "388", testDate.getTime(), DateSwap.TimeFull.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "5:11:12 AM EST" },
+			{ "389", testDate.getTime(), DateSwap.TimeFull.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "5:11:12 AM EST" },
+
+			// DateSwap.TimeLong
+			{ "390", testDate.getTime(), DateSwap.TimeLong.class, null, null, null, null, "10:11:12 AM GMT" },
+			{ "391", testDate.getTime(), DateSwap.TimeLong.class, "ja_JP", null, null, null, "10:11:12 GMT" },
+			{ "392", testDate.getTime(), DateSwap.TimeLong.class, Locale.JAPAN, null, null, null, "10:11:12 GMT" },
+			{ "393", testDate.getTime(), DateSwap.TimeLong.class, null, Locale.JAPAN, null, null, "10:11:12 GMT" },
+			{ "394", testDate.getTime(), DateSwap.TimeLong.class, "en_UK", Locale.JAPAN, null, null, "10:11:12 GMT" },
+			{ "395", testDate.getTime(), DateSwap.TimeLong.class, "en_UK", Locale.KOREA, null, null, "\uc624\uc804 10\uc2dc 11\ubd84 12\ucd08" },
+			{ "396", testDate.getTime(), DateSwap.TimeLong.class, "en_US", null, "PST", null, "2:11:12 AM PST" },
+			{ "397", testDate.getTime(), DateSwap.TimeLong.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "2:11:12 AM PST" },
+			{ "398", testDate.getTime(), DateSwap.TimeLong.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "5:11:12 AM EST" },
+			{ "399", testDate.getTime(), DateSwap.TimeLong.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "5:11:12 AM EST" },
+
+			// DateSwap.TimeMedium
+			{ "400", testDate.getTime(), DateSwap.TimeMedium.class, null, null, null, null, "10:11:12 AM" },
+			{ "401", testDate.getTime(), DateSwap.TimeMedium.class, "ja_JP", null, null, null, "10:11:12" },
+			{ "402", testDate.getTime(), DateSwap.TimeMedium.class, Locale.JAPAN, null, null, null, "10:11:12" },
+			{ "403", testDate.getTime(), DateSwap.TimeMedium.class, null, Locale.JAPAN, null, null, "10:11:12" },
+			{ "404", testDate.getTime(), DateSwap.TimeMedium.class, "en_UK", Locale.JAPAN, null, null, "10:11:12" },
+			{ "405", testDate.getTime(), DateSwap.TimeMedium.class, "en_UK", Locale.KOREA, null, null, "\uc624\uc804 10:11:12" },
+			{ "406", testDate.getTime(), DateSwap.TimeMedium.class, "en_US", null, "PST", null, "2:11:12 AM" },
+			{ "407", testDate.getTime(), DateSwap.TimeMedium.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "2:11:12 AM" },
+			{ "408", testDate.getTime(), DateSwap.TimeMedium.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "5:11:12 AM" },
+			{ "409", testDate.getTime(), DateSwap.TimeMedium.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "5:11:12 AM" },
+
+			// DateSwap.TimeShort
+			{ "410", testDate.getTime(), DateSwap.TimeShort.class, null, null, null, null, "10:11 AM" },
+			{ "411", testDate.getTime(), DateSwap.TimeShort.class, "ja_JP", null, null, null, "10:11" },
+			{ "412", testDate.getTime(), DateSwap.TimeShort.class, Locale.JAPAN, null, null, null, "10:11" },
+			{ "413", testDate.getTime(), DateSwap.TimeShort.class, null, Locale.JAPAN, null, null, "10:11" },
+			{ "414", testDate.getTime(), DateSwap.TimeShort.class, "en_UK", Locale.JAPAN, null, null, "10:11" },
+			{ "415", testDate.getTime(), DateSwap.TimeShort.class, "en_UK", Locale.KOREA, null, null, "\uc624\uc804 10:11" },
+			{ "416", testDate.getTime(), DateSwap.TimeShort.class, "en_US", null, "PST", null, "2:11 AM" },
+			{ "417", testDate.getTime(), DateSwap.TimeShort.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "2:11 AM" },
+			{ "418", testDate.getTime(), DateSwap.TimeShort.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "5:11 AM" },
+			{ "419", testDate.getTime(), DateSwap.TimeShort.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "5:11 AM" },
+
+			// DateSwap.DateTimeFull
+			{ "420", testDate.getTime(), DateSwap.DateTimeFull.class, null, null, null, null, "Saturday, March 3, 2001 10:11:12 AM GMT" },
+			{ "421", testDate.getTime(), DateSwap.DateTimeFull.class, "ja_JP", null, null, null, "2001\u5e743\u67083\u65e5 10\u664211\u520612\u79d2 GMT" },
+			{ "422", testDate.getTime(), DateSwap.DateTimeFull.class, Locale.JAPAN, null, null, null, "2001\u5e743\u67083\u65e5 10\u664211\u520612\u79d2 GMT" },
+			{ "423", testDate.getTime(), DateSwap.DateTimeFull.class, null, Locale.JAPAN, null, null, "2001\u5e743\u67083\u65e5 10\u664211\u520612\u79d2 GMT" },
+			{ "424", testDate.getTime(), DateSwap.DateTimeFull.class, "en_UK", Locale.JAPAN, null, null, "2001\u5e743\u67083\u65e5 10\u664211\u520612\u79d2 GMT" },
+			{ "425", testDate.getTime(), DateSwap.DateTimeFull.class, "en_UK", Locale.KOREA, null, null, "2001\ub144 3\uc6d4 3\uc77c \ud1a0\uc694\uc77c \uc624\uc804 10\uc2dc 11\ubd84 12\ucd08 GMT" },
+			{ "426", testDate.getTime(), DateSwap.DateTimeFull.class, "en_US", null, "PST", null, "Saturday, March 3, 2001 2:11:12 AM PST" },
+			{ "427", testDate.getTime(), DateSwap.DateTimeFull.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "Saturday, March 3, 2001 2:11:12 AM PST" },
+			{ "428", testDate.getTime(), DateSwap.DateTimeFull.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "Saturday, March 3, 2001 5:11:12 AM EST" },
+			{ "429", testDate.getTime(), DateSwap.DateTimeFull.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "Saturday, March 3, 2001 5:11:12 AM EST" },
+
+			// DateSwap.DateTimeLong
+			{ "430", testDate.getTime(), DateSwap.DateTimeLong.class, null, null, null, null, "March 3, 2001 10:11:12 AM GMT" },
+			{ "431", testDate.getTime(), DateSwap.DateTimeLong.class, "ja_JP", null, null, null, "2001/03/03 10:11:12 GMT" },
+			{ "432", testDate.getTime(), DateSwap.DateTimeLong.class, Locale.JAPAN, null, null, null, "2001/03/03 10:11:12 GMT" },
+			{ "433", testDate.getTime(), DateSwap.DateTimeLong.class, null, Locale.JAPAN, null, null, "2001/03/03 10:11:12 GMT" },
+			{ "434", testDate.getTime(), DateSwap.DateTimeLong.class, "en_UK", Locale.JAPAN, null, null, "2001/03/03 10:11:12 GMT" },
+			{ "435", testDate.getTime(), DateSwap.DateTimeLong.class, "en_UK", Locale.KOREA, null, null, "2001\ub144 3\uc6d4 3\uc77c (\ud1a0) \uc624\uc804 10\uc2dc 11\ubd84 12\ucd08" },
+			{ "436", testDate.getTime(), DateSwap.DateTimeLong.class, "en_US", null, "PST", null, "March 3, 2001 2:11:12 AM PST" },
+			{ "437", testDate.getTime(), DateSwap.DateTimeLong.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "March 3, 2001 2:11:12 AM PST" },
+			{ "438", testDate.getTime(), DateSwap.DateTimeLong.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "March 3, 2001 5:11:12 AM EST" },
+			{ "439", testDate.getTime(), DateSwap.DateTimeLong.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "March 3, 2001 5:11:12 AM EST" },
+
+			// DateSwap.DateTimeMedium
+			{ "440", testDate.getTime(), DateSwap.DateTimeMedium.class, null, null, null, null, "Mar 3, 2001 10:11:12 AM" },
+			{ "441", testDate.getTime(), DateSwap.DateTimeMedium.class, "ja_JP", null, null, null, "2001/03/03 10:11:12" },
+			{ "442", testDate.getTime(), DateSwap.DateTimeMedium.class, Locale.JAPAN, null, null, null, "2001/03/03 10:11:12" },
+			{ "443", testDate.getTime(), DateSwap.DateTimeMedium.class, null, Locale.JAPAN, null, null, "2001/03/03 10:11:12" },
+			{ "444", testDate.getTime(), DateSwap.DateTimeMedium.class, "en_UK", Locale.JAPAN, null, null, "2001/03/03 10:11:12" },
+			{ "445", testDate.getTime(), DateSwap.DateTimeMedium.class, "en_UK", Locale.KOREA, null, null, "2001. 3. 3 \uc624\uc804 10:11:12" },
+			{ "446", testDate.getTime(), DateSwap.DateTimeMedium.class, "en_US", null, "PST", null, "Mar 3, 2001 2:11:12 AM" },
+			{ "447", testDate.getTime(), DateSwap.DateTimeMedium.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "Mar 3, 2001 2:11:12 AM" },
+			{ "448", testDate.getTime(), DateSwap.DateTimeMedium.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "Mar 3, 2001 5:11:12 AM" },
+			{ "449", testDate.getTime(), DateSwap.DateTimeMedium.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "Mar 3, 2001 5:11:12 AM" },
+
+			// DateSwap.DateTimeShort
+			{ "450", testDate.getTime(), DateSwap.DateTimeShort.class, null, null, null, null, "3/3/01 10:11 AM" },
+			{ "451", testDate.getTime(), DateSwap.DateTimeShort.class, "ja_JP", null, null, null, "01/03/03 10:11" },
+			{ "452", testDate.getTime(), DateSwap.DateTimeShort.class, Locale.JAPAN, null, null, null, "01/03/03 10:11" },
+			{ "453", testDate.getTime(), DateSwap.DateTimeShort.class, null, Locale.JAPAN, null, null, "01/03/03 10:11" },
+			{ "454", testDate.getTime(), DateSwap.DateTimeShort.class, "en_UK", Locale.JAPAN, null, null, "01/03/03 10:11" },
+			{ "455", testDate.getTime(), DateSwap.DateTimeShort.class, "en_UK", Locale.KOREA, null, null, "01. 3. 3 \uc624\uc804 10:11" },
+			{ "456", testDate.getTime(), DateSwap.DateTimeShort.class, "en_US", null, "PST", null, "3/3/01 2:11 AM" },
+			{ "457", testDate.getTime(), DateSwap.DateTimeShort.class, "en_US", null, TimeZone.getTimeZone("PST"), null, "3/3/01 2:11 AM" },
+			{ "458", testDate.getTime(), DateSwap.DateTimeShort.class, "en_US", null, null, TimeZone.getTimeZone("EST"), "3/3/01 5:11 AM" },
+			{ "459", testDate.getTime(), DateSwap.DateTimeShort.class, "en_US", null, "PST", TimeZone.getTimeZone("EST"), "3/3/01 5:11 AM" },
+		});
+	}
+
+	@Before
+	public void beforeTest() {
+		TestUtils.setLocale(Locale.US);
+		TestUtils.setTimeZone("GMT");
+	}
+
+	@After
+	public void afterTest() {
+		TestUtils.unsetLocale();
+		TestUtils.unsetTimeZone();
+	}
+
+	@SuppressWarnings("unused")
+	private String label, expected;
+	private Object calendar;
+	private ContextFactory cf;
+	private Locale sessionLocale;
+	private TimeZone sessionTimeZone;
+
+	public LocalizedDatesTest(String label, Object calendar, Class<? extends PojoSwap<?,?>> swap, Object contextLocale, Locale sessionLocale, Object contextTimeZone, TimeZone sessionTimeZone, String expected) throws Exception {
+		this.label = label;
+		this.expected = expected;
+		this.calendar = calendar;
+		this.sessionLocale = sessionLocale;
+		this.sessionTimeZone = sessionTimeZone;
+		cf = ContextFactory.create().addPojoSwaps(swap);
+		if (contextLocale != null)
+			cf.setProperty(BEAN_locale, contextLocale);
+		if (contextTimeZone != null)
+			cf.setProperty(BEAN_timeZone, contextTimeZone);
+	}
+
+	@Test
+	public void test() {
+		BeanSession session = cf.getBeanContext().createSession(null, sessionLocale, sessionTimeZone);
+		String actual = session.convertToType(calendar, String.class);
+		assertEquals(expected, actual);
+		Object c2 = session.convertToType(actual, calendar.getClass());
+		String actual2 = session.convertToType(c2, String.class);
+		assertEquals(expected, actual2);
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bb650bde/juneau-core/src/test/java/org/apache/juneau/urlencoding/CommonParser_UrlEncodingTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/urlencoding/CommonParser_UrlEncodingTest.java b/juneau-core/src/test/java/org/apache/juneau/urlencoding/CommonParser_UrlEncodingTest.java
index 1254916..035060c 100755
--- a/juneau-core/src/test/java/org/apache/juneau/urlencoding/CommonParser_UrlEncodingTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/urlencoding/CommonParser_UrlEncodingTest.java
@@ -180,7 +180,7 @@ public class CommonParser_UrlEncodingTest {
 		assertEquals("0=foo&1=bar", s.serialize(l));
 
 		String in =  "0=foo&1=bar";
-		ClassMeta<LinkedList<String>> cm = p.getBeanContext().getCollectionClassMeta(LinkedList.class, String.class);
+		ClassMeta<LinkedList<String>> cm = p.getBeanContext().createSession().getCollectionClassMeta(LinkedList.class, String.class);
 		l = p.parse(in, cm);
 		assertObjectEquals("['foo','bar']",l);
 	}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bb650bde/juneau-core/src/test/java/org/apache/juneau/utils/PojoQueryTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/utils/PojoQueryTest.java b/juneau-core/src/test/java/org/apache/juneau/utils/PojoQueryTest.java
index 34b9d23..5f451fd 100755
--- a/juneau-core/src/test/java/org/apache/juneau/utils/PojoQueryTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/utils/PojoQueryTest.java
@@ -37,7 +37,7 @@ public class PojoQueryTest {
 		int pos = 0;
 		int limit = 0;
 		boolean ignoreCase = false;
-		BeanContext bc = BeanContext.DEFAULT;
+		BeanSession session = BeanContext.DEFAULT.createSession();
 		List results;
 
 		List<A> in = new LinkedList<A>() {{
@@ -46,7 +46,7 @@ public class PojoQueryTest {
 			add(new A("baz"));
 		}};
 
-		PojoQuery filter = new PojoQuery(in, bc);
+		PojoQuery filter = new PojoQuery(in, session);
 
 		query = new ObjectMap("{f:'foo'}");
 		results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase);
@@ -86,8 +86,8 @@ public class PojoQueryTest {
 		int pos = 0;
 		int limit = 0;
 		boolean ignoreCase = false;
-		BeanContext bc = BeanContext.DEFAULT;
-		WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(CalendarSwap.Simple.class);
+		BeanSession session = BeanContext.DEFAULT.createSession();
+		WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(CalendarSwap.DateTimeSimple.class);
 		B[] in;
 		PojoQuery filter;
 
@@ -99,7 +99,7 @@ public class PojoQueryTest {
 			new B(2011, 0, 31),
 			new B(2012, 0, 1)
 		};
-		filter = new PojoQuery(in, bc);
+		filter = new PojoQuery(in, session);
 
 		query = new ObjectMap("{f:'2011'}");
 		results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase);
@@ -119,7 +119,7 @@ public class PojoQueryTest {
 			new B(2011, 00, 01, 12, 59, 59),
 			new B(2011, 00, 01, 13, 00, 00)
 		};
-		filter = new PojoQuery(in, bc);
+		filter = new PojoQuery(in, session);
 
 		query = new ObjectMap("{f:'2011.01.01.12'}");
 		results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase);
@@ -131,7 +131,7 @@ public class PojoQueryTest {
 			new B(2011, 00, 01, 12, 30, 59),
 			new B(2011, 00, 01, 12, 31, 00)
 		};
-		filter = new PojoQuery(in, bc);
+		filter = new PojoQuery(in, session);
 		query = new ObjectMap("{f:'2011.01.01.12.30'}");
 		results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase);
 		assertEquals("[{f:'2011/01/01 12:30:00'},{f:'2011/01/01 12:30:59'}]", s.serialize(results));
@@ -141,7 +141,7 @@ public class PojoQueryTest {
 			new B(2011, 00, 01, 12, 30, 30),
 			new B(2011, 00, 01, 12, 30, 31)
 		};
-		filter = new PojoQuery(in, bc);
+		filter = new PojoQuery(in, session);
 		query = new ObjectMap("{f:'2011.01.01.12.30.30'}");
 		results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase);
 		assertEquals("[{f:'2011/01/01 12:30:30'}]", s.serialize(results));
@@ -152,7 +152,7 @@ public class PojoQueryTest {
 			new B(2000, 11, 31),
 			new B(2001, 00, 01)
 		};
-		filter = new PojoQuery(in, bc);
+		filter = new PojoQuery(in, session);
 
 		query = new ObjectMap("{f:'>2000'}");
 		results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase);
@@ -174,7 +174,7 @@ public class PojoQueryTest {
 			new B(2011, 00, 01, 12, 29, 59),
 			new B(2011, 00, 01, 12, 30, 00)
 		};
-		filter = new PojoQuery(in, bc);
+		filter = new PojoQuery(in, session);
 
 		query = new ObjectMap("{f:'>=2011.01.01.12.30'}");
 		results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase);
@@ -188,7 +188,7 @@ public class PojoQueryTest {
 			new B(2011, 00, 01, 12, 30, 59),
 			new B(2011, 00, 01, 12, 31, 00)
 		};
-		filter = new PojoQuery(in, bc);
+		filter = new PojoQuery(in, session);
 
 		query = new ObjectMap("{f:'>2011.01.01.12.30'}");
 		results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase);
@@ -206,7 +206,7 @@ public class PojoQueryTest {
 			new B(2003, 05, 30, 23, 59, 59),
 			new B(2003, 06, 01, 00, 00, 00)
 		};
-		filter = new PojoQuery(in, bc);
+		filter = new PojoQuery(in, session);
 
 		query = new ObjectMap("{f:'2001 - 2003.06.30'}");
 		results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase);
@@ -220,7 +220,7 @@ public class PojoQueryTest {
 			new B(2001, 11, 31),
 			new B(2002, 00, 01)
 		};
-		filter = new PojoQuery(in, bc);
+		filter = new PojoQuery(in, session);
 
 		query = new ObjectMap("{f:'2001 2003 2005'}");
 		results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase);
@@ -232,7 +232,7 @@ public class PojoQueryTest {
 			new B(2003, 11, 31),
 			new B(2004, 00, 01)
 		};
-		filter = new PojoQuery(in, bc);
+		filter = new PojoQuery(in, session);
 
 		query = new ObjectMap("{f:'2001 2003 2005'}");
 		results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase);
@@ -244,7 +244,7 @@ public class PojoQueryTest {
 			new B(2005, 11, 31),
 			new B(2006, 00, 01)
 		};
-		filter = new PojoQuery(in, bc);
+		filter = new PojoQuery(in, session);
 
 		query = new ObjectMap("{f:'2001 2003 2005'}");
 		results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase);
@@ -276,7 +276,7 @@ public class PojoQueryTest {
 		int pos = 0;
 		int limit = 0;
 		boolean ignoreCase = false;
-		BeanContext bc = BeanContext.DEFAULT;
+		BeanSession session = BeanContext.DEFAULT.createSession();
 		List results;
 
 		List<C> in = new LinkedList<C>() {{
@@ -285,7 +285,7 @@ public class PojoQueryTest {
 			add(new C(3));
 		}};
 
-		PojoQuery filter = new PojoQuery(in, bc);
+		PojoQuery filter = new PojoQuery(in, session);
 
 		query = new ObjectMap("{f:'1'}");
 		results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase);
@@ -333,7 +333,7 @@ public class PojoQueryTest {
 		int pos = 0;
 		int limit = 0;
 		boolean ignoreCase = false;
-		BeanContext bc = BeanContext.DEFAULT;
+		BeanSession session = BeanContext.DEFAULT.createSession();
 		List results;
 
 		List<D1> in = new LinkedList<D1>() {{
@@ -342,7 +342,7 @@ public class PojoQueryTest {
 			add(new D1("baz"));
 		}};
 
-		PojoQuery filter = new PojoQuery(in, bc);
+		PojoQuery filter = new PojoQuery(in, session);
 
 		query = new ObjectMap("{f:{f:'foo'}}");
 		results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase);
@@ -391,7 +391,7 @@ public class PojoQueryTest {
 		int pos = 0;
 		int limit = 0;
 		boolean ignoreCase = false;
-		BeanContext bc = BeanContext.DEFAULT;
+		BeanSession session = BeanContext.DEFAULT.createSession();
 		List results;
 
 		List<E> in = new LinkedList<E>() {{
@@ -400,7 +400,7 @@ public class PojoQueryTest {
 			add(new E("baz", 3, true));
 		}};
 
-		PojoQuery filter = new PojoQuery(in, bc);
+		PojoQuery filter = new PojoQuery(in, session);
 
 		view = new ObjectList("['f1']");
 		results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase);
@@ -444,7 +444,7 @@ public class PojoQueryTest {
 		int pos = 0;
 		int limit = 0;
 		boolean ignoreCase = false;
-		BeanContext bc = BeanContext.DEFAULT;
+		BeanSession session = BeanContext.DEFAULT.createSession();
 		List results;
 
 		List<F1> in = new LinkedList<F1>() {{
@@ -453,7 +453,7 @@ public class PojoQueryTest {
 			add(new F1("baz"));
 		}};
 
-		PojoQuery filter = new PojoQuery(in, bc);
+		PojoQuery filter = new PojoQuery(in, session);
 
 		view = new ObjectList("['f1']");
 		results = filter.filterCollection(query, view, sort, pos, limit, ignoreCase);
@@ -503,11 +503,11 @@ public class PojoQueryTest {
 	@Test
 	public void testFilterMapOneLevel() throws Exception {
 		ObjectList view = null;
-		BeanContext bc = BeanContext.DEFAULT;
+		BeanSession session = BeanContext.DEFAULT.createSession();
 		Map results;
 
 		G in = new G("foo", 1, true);
-		PojoQuery filter = new PojoQuery(in, bc);
+		PojoQuery filter = new PojoQuery(in, session);
 
 		view = new ObjectList("['f1']");
 		results = filter.filterMap(view);
@@ -542,12 +542,12 @@ public class PojoQueryTest {
 	@Test
 	public void testFilterMapTwoLevel() throws Exception {
 		ObjectList view = null;
-		BeanContext bc = BeanContext.DEFAULT;
+		BeanSession session = BeanContext.DEFAULT.createSession();
 		Map results;
 
 		H1 in = new H1("foo");
 
-		PojoQuery filter = new PojoQuery(in, bc);
+		PojoQuery filter = new PojoQuery(in, session);
 
 		view = new ObjectList("['f1']");
 		results = filter.filterMap(view);
@@ -602,8 +602,8 @@ public class PojoQueryTest {
 		int pos = 0;
 		int limit = 0;
 		boolean ignoreCase = false;
-		BeanContext bc = BeanContext.DEFAULT;
-		WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(CalendarSwap.Simple.class);
+		BeanSession session = BeanContext.DEFAULT.createSession();
+		WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(CalendarSwap.DateTimeSimple.class);
 		List results;
 
 		I[] in = new I[] {
@@ -612,7 +612,7 @@ public class PojoQueryTest {
 			new I(3, "baz", true, 2012, 1, 1),
 		};
 
-		PojoQuery filter = new PojoQuery(in, bc);
+		PojoQuery filter = new PojoQuery(in, session);
 
 		sort = new ObjectList("['f2']");
 		view = new ObjectList("['f1','f2']");

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bb650bde/juneau-core/src/test/java/org/apache/juneau/utils/StringUtilsTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/utils/StringUtilsTest.java b/juneau-core/src/test/java/org/apache/juneau/utils/StringUtilsTest.java
index d2a64c4..71ccc49 100755
--- a/juneau-core/src/test/java/org/apache/juneau/utils/StringUtilsTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/utils/StringUtilsTest.java
@@ -15,6 +15,7 @@ package org.apache.juneau.utils;
 import static org.apache.juneau.TestUtils.*;
 import static org.apache.juneau.internal.StringUtils.*;
 import static org.junit.Assert.*;
+import static org.apache.juneau.BeanContext.*;
 
 import java.math.*;
 import java.util.*;
@@ -638,23 +639,29 @@ public class StringUtilsTest {
 	//====================================================================================================
 	@Test
 	public void testParseISO8601Date() throws Exception {
-		WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(DateSwap.ISO8601DTPNZ.class);
+		WriterSerializer s = new JsonSerializer.Simple().addPojoSwaps(DateSwap.ISO8601DTPZ.class).setProperty(BEAN_timeZone, "GMT");
 
 		assertNull(parseISO8601Date(null));
 		assertNull(parseISO8601Date(""));
 
-		assertEquals("'2000-01-01T00:00:00.000'", s.serialize(parseISO8601Date("2000")));
-		assertEquals("'2000-02-01T00:00:00.000'", s.serialize(parseISO8601Date("2000-02")));
-		assertEquals("'2000-02-03T00:00:00.000'", s.serialize(parseISO8601Date("2000-02-03")));
-		assertEquals("'2000-02-03T04:00:00.000'", s.serialize(parseISO8601Date("2000-02-03T04")));
-		assertEquals("'2000-02-03T04:05:00.000'", s.serialize(parseISO8601Date("2000-02-03T04:05")));
-		assertEquals("'2000-02-03T04:05:06.000'", s.serialize(parseISO8601Date("2000-02-03T04:05:06")));
-		assertEquals("'2000-02-03T04:00:00.000'", s.serialize(parseISO8601Date("2000-02-03 04")));
-		assertEquals("'2000-02-03T04:05:00.000'", s.serialize(parseISO8601Date("2000-02-03 04:05")));
-		assertEquals("'2000-02-03T04:05:06.000'", s.serialize(parseISO8601Date("2000-02-03 04:05:06")));
-
-		// ISO8601 doesn't support milliseconds, so it gets trimmed.
-		assertEquals("'2000-02-03T04:05:06.000'", s.serialize(parseISO8601Date("2000-02-03 04:05:06,789")));
+		TestUtils.setTimeZone("GMT");
+		try {
+
+			assertEquals("'2000-01-01T00:00:00.000Z'", s.serialize(parseISO8601Date("2000")));
+			assertEquals("'2000-02-01T00:00:00.000Z'", s.serialize(parseISO8601Date("2000-02")));
+			assertEquals("'2000-02-03T00:00:00.000Z'", s.serialize(parseISO8601Date("2000-02-03")));
+			assertEquals("'2000-02-03T04:00:00.000Z'", s.serialize(parseISO8601Date("2000-02-03T04")));
+			assertEquals("'2000-02-03T04:05:00.000Z'", s.serialize(parseISO8601Date("2000-02-03T04:05")));
+			assertEquals("'2000-02-03T04:05:06.000Z'", s.serialize(parseISO8601Date("2000-02-03T04:05:06")));
+			assertEquals("'2000-02-03T04:00:00.000Z'", s.serialize(parseISO8601Date("2000-02-03 04")));
+			assertEquals("'2000-02-03T04:05:00.000Z'", s.serialize(parseISO8601Date("2000-02-03 04:05")));
+			assertEquals("'2000-02-03T04:05:06.000Z'", s.serialize(parseISO8601Date("2000-02-03 04:05:06")));
+
+			// ISO8601 doesn't support milliseconds, so it gets trimmed.
+			assertEquals("'2000-02-03T04:05:06.000Z'", s.serialize(parseISO8601Date("2000-02-03 04:05:06,789")));
+		} finally {
+			TestUtils.unsetTimeZone();
+		}
 	}
 
 	//====================================================================================================

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bb650bde/juneau-core/src/test/java/org/apache/juneau/xml/XmlContentTest.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/test/java/org/apache/juneau/xml/XmlContentTest.java b/juneau-core/src/test/java/org/apache/juneau/xml/XmlContentTest.java
index 3773dc2..ae3e2ad 100755
--- a/juneau-core/src/test/java/org/apache/juneau/xml/XmlContentTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/xml/XmlContentTest.java
@@ -50,7 +50,7 @@ public class XmlContentTest {
 		t.f2 = null;
 
 		sw = new StringWriter();
-		session = s1.createSession(sw, new ObjectMap("{"+SERIALIZER_trimNullProperties+":false}"), null);
+		session = s1.createSession(sw, new ObjectMap("{"+SERIALIZER_trimNullProperties+":false}"), null, null, null);
 		s1.serialize(session, t);
 		r = sw.toString();
 		assertEquals("<A f1='f1'>_x0000_</A>", r);
@@ -58,7 +58,7 @@ public class XmlContentTest {
 		assertEqualObjects(t, t2);
 
 		sw = new StringWriter();
-		session = s2.createSession(sw, new ObjectMap("{"+SERIALIZER_trimNullProperties+":false}"), null);
+		session = s2.createSession(sw, new ObjectMap("{"+SERIALIZER_trimNullProperties+":false}"), null, null, null);
 		s2.serialize(session, t);
 		r = sw.toString();
 		assertEquals("<A f1='f1'>\n\t_x0000_\n</A>\n", r);
@@ -158,7 +158,7 @@ public class XmlContentTest {
 		t.f2 = null;
 
 		sw = new StringWriter();
-		session = s1.createSession(sw, new ObjectMap("{"+SERIALIZER_trimNullProperties+":false}"), null);
+		session = s1.createSession(sw, new ObjectMap("{"+SERIALIZER_trimNullProperties+":false}"), null, null, null);
 		s1.serialize(session, t);
 		r = sw.toString();
 		assertEquals("<A f1='f1'>_x0000_</A>", r);
@@ -166,7 +166,7 @@ public class XmlContentTest {
 		assertEqualObjects(t, t2);
 
 		sw = new StringWriter();
-		session = s2.createSession(sw, new ObjectMap("{"+SERIALIZER_trimNullProperties+":false}"), null);
+		session = s2.createSession(sw, new ObjectMap("{"+SERIALIZER_trimNullProperties+":false}"), null, null, null);
 		s2.serialize(session, t);
 		r = sw.toString();
 		assertEquals("<A f1='f1'>\n\t_x0000_\n</A>\n", r);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bb650bde/juneau-samples/juneau-samples.launch
----------------------------------------------------------------------
diff --git a/juneau-samples/juneau-samples.launch b/juneau-samples/juneau-samples.launch
index 2ef6033..f2803fe 100644
--- a/juneau-samples/juneau-samples.launch
+++ b/juneau-samples/juneau-samples.launch
@@ -1,18 +1,4 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!--
- ***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *
- * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            *
- * with the License.  You may obtain a copy of the License at                                                              *
- *                                                                                                                         *
- *  http://www.apache.org/licenses/LICENSE-2.0                                                                             *
- *                                                                                                                         *
- * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *
- * specific language governing permissions and limitations under the License.                                              *
- ***************************************************************************************************************************
--->
 <launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
 <stringAttribute key="bad_container_name" value="/juneau-sam"/>
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
@@ -24,6 +10,7 @@
 <booleanAttribute key="org.eclipse.jdt.debug.ui.CONSIDER_INHERITED_MAIN" value="true"/>
 <booleanAttribute key="org.eclipse.jdt.debug.ui.INCLUDE_EXTERNAL_JARS" value="true"/>
 <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/Java SE 6 [1.6.0_65-b14-468]"/>
 <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.apache.juneau.microservice.RestMicroservice"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="samples.cfg"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="juneau-samples"/>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bb650bde/juneau-samples/src/main/java/org/apache/juneau/samples/addressbook/CreatePerson.java
----------------------------------------------------------------------
diff --git a/juneau-samples/src/main/java/org/apache/juneau/samples/addressbook/CreatePerson.java b/juneau-samples/src/main/java/org/apache/juneau/samples/addressbook/CreatePerson.java
index 5dad05e..65a2b54 100755
--- a/juneau-samples/src/main/java/org/apache/juneau/samples/addressbook/CreatePerson.java
+++ b/juneau-samples/src/main/java/org/apache/juneau/samples/addressbook/CreatePerson.java
@@ -29,7 +29,7 @@ public class CreatePerson {
 
 	// Bean properties
 	public String name;
-	@BeanProperty(swap=CalendarSwap.Medium.class) public Calendar birthDate;
+	@BeanProperty(swap=CalendarSwap.DateMedium.class) public Calendar birthDate;
 	public LinkedList<CreateAddress> addresses = new LinkedList<CreateAddress>();
 
 	/** Bean constructor - Needed for instantiating on server side */

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bb650bde/juneau-samples/src/main/java/org/apache/juneau/samples/addressbook/Person.java
----------------------------------------------------------------------
diff --git a/juneau-samples/src/main/java/org/apache/juneau/samples/addressbook/Person.java b/juneau-samples/src/main/java/org/apache/juneau/samples/addressbook/Person.java
index da1f3af..e3fadb0 100755
--- a/juneau-samples/src/main/java/org/apache/juneau/samples/addressbook/Person.java
+++ b/juneau-samples/src/main/java/org/apache/juneau/samples/addressbook/Person.java
@@ -35,7 +35,7 @@ public class Person {
 	public URI addressBookUri;
 	public int id;
 	public String name;
-	@BeanProperty(swap=CalendarSwap.Medium.class) public Calendar birthDate;
+	@BeanProperty(swap=CalendarSwap.DateMedium.class) public Calendar birthDate;
 	public LinkedList<Address> addresses = new LinkedList<Address>();
 
 	/** Bean constructor - Needed for instantiating on server side */

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bb650bde/juneau-samples/src/main/java/org/apache/juneau/server/samples/addressbook/AddressBookResource.java
----------------------------------------------------------------------
diff --git a/juneau-samples/src/main/java/org/apache/juneau/server/samples/addressbook/AddressBookResource.java b/juneau-samples/src/main/java/org/apache/juneau/server/samples/addressbook/AddressBookResource.java
index e13f352..b49d17c 100755
--- a/juneau-samples/src/main/java/org/apache/juneau/server/samples/addressbook/AddressBookResource.java
+++ b/juneau-samples/src/main/java/org/apache/juneau/server/samples/addressbook/AddressBookResource.java
@@ -281,14 +281,14 @@ public class AddressBookResource extends ResourceJena {
 				.addPojoSwap(
 					new PojoSwap<Person,Integer>() {
 						@Override /* PojoSwap */
-						public Integer swap(Person p) {
+						public Integer swap(BeanSession session, Person p) {
 							return p.addresses.size();
 						}
 					}
 				)
 		};
 
-		return new DataSet(items, addressBook, this.getBeanContext());
+		return new DataSet(items, addressBook, this.getBeanContext().createSession());
 	}
 
 	/**

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bb650bde/juneau-samples/src/test/java/org/apache/juneau/server/samples/AddressBookResourceTest.java
----------------------------------------------------------------------
diff --git a/juneau-samples/src/test/java/org/apache/juneau/server/samples/AddressBookResourceTest.java b/juneau-samples/src/test/java/org/apache/juneau/server/samples/AddressBookResourceTest.java
index 79ac1b1..4ff5e08 100755
--- a/juneau-samples/src/test/java/org/apache/juneau/server/samples/AddressBookResourceTest.java
+++ b/juneau-samples/src/test/java/org/apache/juneau/server/samples/AddressBookResourceTest.java
@@ -43,8 +43,8 @@ public class AddressBookResourceTest {
 			new SamplesRestClient(XmlSerializer.class,  HtmlParser.class).setAccept("text/html+stripped")
 		};
 		for (RestClient c : clients) {
-			c.getSerializer().addPojoSwaps(CalendarSwap.Medium.class);
-			c.getParser().addPojoSwaps(CalendarSwap.Medium.class);
+			c.getSerializer().addPojoSwaps(CalendarSwap.DateMedium.class);
+			c.getParser().addPojoSwaps(CalendarSwap.DateMedium.class);
 			c.getSerializer().setProperty(XmlSerializerContext.XML_autoDetectNamespaces, true);
 		}
 	}
@@ -62,7 +62,7 @@ public class AddressBookResourceTest {
 	@Test
 	public void testBasic() throws Exception {
 		String in = IOUtils.read(getClass().getResourceAsStream("/org/apache/juneau/server/test/AddressBookResource_test0Test.json"));
-		JsonParser p = new JsonParser().addPojoSwaps(CalendarSwap.Medium.class);
+		JsonParser p = new JsonParser().addPojoSwaps(CalendarSwap.DateMedium.class);
 		Person person = p.parse(in, Person.class);
 		if (debug) System.err.println(person);
 	}
@@ -100,7 +100,7 @@ public class AddressBookResourceTest {
 
 			// POST an address as JSON
 			CreateAddress ca = new CreateAddress("a1","b1","c1",1,false);
-			Address a = client.doPost(p.uri + "/addresses", new ObjectMap(BeanContext.DEFAULT.forBean(ca))).getResponse(Address.class);
+			Address a = client.doPost(p.uri + "/addresses", new ObjectMap(BeanContext.DEFAULT.createSession().toBeanMap(ca))).getResponse(Address.class);
 			assertEquals("a1", a.street);
 			a = client.doGet(a.uri).getResponse(Address.class);
 			assertEquals("a1", a.street);

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bb650bde/juneau-samples/src/test/java/org/apache/juneau/server/samples/SampleRemoteableServicesResourceTest.java
----------------------------------------------------------------------
diff --git a/juneau-samples/src/test/java/org/apache/juneau/server/samples/SampleRemoteableServicesResourceTest.java b/juneau-samples/src/test/java/org/apache/juneau/server/samples/SampleRemoteableServicesResourceTest.java
index 97bcaed..6cce905 100755
--- a/juneau-samples/src/test/java/org/apache/juneau/server/samples/SampleRemoteableServicesResourceTest.java
+++ b/juneau-samples/src/test/java/org/apache/juneau/server/samples/SampleRemoteableServicesResourceTest.java
@@ -35,7 +35,7 @@ public class SampleRemoteableServicesResourceTest {
 			new SamplesRestClient(UonSerializer.class, UonParser.class),
 		};
 		for (RestClient c : clients) {
-			c.addPojoSwaps(CalendarSwap.Medium.class);
+			c.addPojoSwaps(CalendarSwap.DateMedium.class);
 			c.setRemoteableServletUri("/remoteable");
 			c.setProperty(XmlSerializerContext.XML_autoDetectNamespaces, true);
 		}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bb650bde/juneau-server-test/src/main/java/org/apache/juneau/server/test/BeanContextPropertiesResource.java
----------------------------------------------------------------------
diff --git a/juneau-server-test/src/main/java/org/apache/juneau/server/test/BeanContextPropertiesResource.java b/juneau-server-test/src/main/java/org/apache/juneau/server/test/BeanContextPropertiesResource.java
index cf00e76..9c33cf2 100755
--- a/juneau-server-test/src/main/java/org/apache/juneau/server/test/BeanContextPropertiesResource.java
+++ b/juneau-server-test/src/main/java/org/apache/juneau/server/test/BeanContextPropertiesResource.java
@@ -15,6 +15,7 @@ package org.apache.juneau.server.test;
 import java.io.*;
 import java.util.*;
 
+import org.apache.juneau.*;
 import org.apache.juneau.server.*;
 import org.apache.juneau.server.annotation.*;
 import org.apache.juneau.transforms.*;
@@ -35,8 +36,9 @@ public class BeanContextPropertiesResource extends RestServletDefault {
 	@RestMethod(name="GET", path="/testClassTransforms/{d1}")
 	public Reader testClassTransforms(@Path("d1") Date d1, @Query("d2") Date d2, @Header("X-D3") Date d3) throws Exception {
 		DateSwap df = DateSwap.ISO8601DTZ.class.newInstance();
+		BeanSession session = BeanContext.DEFAULT.createSession();
 		return new StringReader(
-			"d1="+df.swap(d1)+",d2="+df.swap(d2)+",d3="+df.swap(d3)+""
+			"d1="+df.swap(session, d1)+",d2="+df.swap(session, d2)+",d3="+df.swap(session, d3)+""
 		);
 	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/bb650bde/juneau-server-test/src/main/java/org/apache/juneau/server/test/InheritanceResource.java
----------------------------------------------------------------------
diff --git a/juneau-server-test/src/main/java/org/apache/juneau/server/test/InheritanceResource.java b/juneau-server-test/src/main/java/org/apache/juneau/server/test/InheritanceResource.java
index 4526d18..13445c2 100755
--- a/juneau-server-test/src/main/java/org/apache/juneau/server/test/InheritanceResource.java
+++ b/juneau-server-test/src/main/java/org/apache/juneau/server/test/InheritanceResource.java
@@ -296,21 +296,21 @@ public class InheritanceResource extends RestServlet {
 
 	public static class F1Swap extends PojoSwap<Foo1,String> {
 		@Override /* PojoSwap */
-		public String swap(Foo1 o) throws SerializeException {
+		public String swap(BeanSession session, Foo1 o) throws SerializeException {
 			return "F1";
 		}
 	}
 
 	public static class F2Swap extends PojoSwap<Foo2,String> {
 		@Override /* PojoSwap */
-		public String swap(Foo2 o) throws SerializeException {
+		public String swap(BeanSession session, Foo2 o) throws SerializeException {
 			return "F2";
 		}
 	}
 
 	public static class F3Swap extends PojoSwap<Foo3,String> {
 		@Override /* PojoSwap */
-		public String swap(Foo3 o) throws SerializeException {
+		public String swap(BeanSession session, Foo3 o) throws SerializeException {
 			return "F3";
 		}
 	}