@@ -0,0 +1,1398 @@
+package com.alibaba.json.bvt.issue_2900;%0A%0Aimport java.util.Calendar;%0Aimport java.util.Date;%0Aimport java.util.TimeZone;%0A%0Aimport com.alibaba.fastjson.JSON;%0Aimport com.alibaba.fastjson.serializer.SerializerFeature;%0A%0Aimport junit.framework.TestCase;%0A%0Apublic class Issue2962 extends TestCase %7B%0A    private TimeZone original = TimeZone.getDefault();%0A%0A    @Override%0A    public void tearDown () %7B%0A        TimeZone.setDefault(original);%0A        JSON.defaultTimeZone = original;%0A    %7D%0A%0A    public void test_dates_different_timeZones() %7B%0A    %09for (String id : TimeZone.getAvailableIDs()) %7B%0A    %09%09TimeZone timeZone = TimeZone.getTimeZone(id);%0A            TimeZone.setDefault(timeZone);%0A            JSON.defaultTimeZone = timeZone;%0A%0A            Calendar cal = Calendar.getInstance();%0A            Date now = cal.getTime();%0A%0A            VO vo = new VO();%0A            vo.date = now;%0A%0A            String json = JSON.toJSONString(vo);%0A            VO result = JSON.parseObject(json, VO.class);%0A            assertEquals(vo.date, result.date);%0A%0A            // with iso-format%0A            json = JSON.toJSONString(vo, SerializerFeature.UseISO8601DateFormat);%0A    %09%09System.out.println(id + %22 %22 + json);%0A            result = JSON.parseObject(json, VO.class);%0A            assertEquals(JSON.toJSONString(vo.date), JSON.toJSONString(result.date));%0A    %09%7D%0A    %7D%0A%0A    public static class VO %7B%0A        public Date date;%0A    %7D%0A%7D%0A

test issue #2962