Test that the date format is honored, even in a collection.
http://code.google.com/p/google-gson/issues/detail?id=230
diff --git a/gson/src/test/java/com/google/gson/functional/DefaultTypeAdaptersTest.java b/gson/src/test/java/com/google/gson/functional/DefaultTypeAdaptersTest.java
index e9312ee..026c668 100644
--- a/gson/src/test/java/com/google/gson/functional/DefaultTypeAdaptersTest.java
+++ b/gson/src/test/java/com/google/gson/functional/DefaultTypeAdaptersTest.java
@@ -24,10 +24,12 @@
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
+import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashSet;
+import java.util.List;
import java.util.Locale;
import java.util.Properties;
import java.util.Set;
@@ -376,6 +378,23 @@
assertEquals(expectedDateString, json);
}
+ // http://code.google.com/p/google-gson/issues/detail?id=230
+ public void testDateSerializationInCollection() throws Exception {
+ TimeZone defaultTimeZone = TimeZone.getDefault();
+ TimeZone.setDefault(TimeZone.getTimeZone("America/Los_Angeles"));
+ Locale defaultLocale = Locale.getDefault();
+ Locale.setDefault(Locale.US);
+ try {
+ Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
+ List<Date> dates = Arrays.asList(new Date(0));
+ String json = gson.toJson(dates, new TypeToken<List<Date>>() {}.getType());
+ assertEquals("[\"1969-12-31\"]", json);
+ } finally {
+ TimeZone.setDefault(defaultTimeZone);
+ Locale.setDefault(defaultLocale);
+ }
+ }
+
private static class ClassWithBigDecimal {
BigDecimal value;
// For use by Gson