content: package com.alibaba.json.bvt.date;
  
  import java.io.StringReader;
  import java.text.SimpleDateFormat;
  import java.util.Date;
  import java.util.Locale;
  import java.util.TimeZone;
  
  import org.junit.Assert;
  
  import com.alibaba.fastjson.JSON;
  import com.alibaba.fastjson.JSONReader;
  
  import junit.framework.TestCase;
  
  public class DateTest_tz extends TestCase {
      protected void setUp() throws Exception {
          JSON.defaultTimeZone = TimeZone.getTimeZone("Asia/Shanghai");
          JSON.defaultLocale = Locale.CHINA;
      }
      
      public void test_codec() throws Exception {
          JSONReader reader = new JSONReader(new StringReader("{\"value\":\"2016-04-29\"}"));
          reader.setLocale(Locale.CHINA);
          reader.setTimzeZone(TimeZone.getTimeZone("Asia/Shanghai"));
          
          Model model = reader.readObject(Model.class);
          Assert.assertNotNull(model.value);
          
          SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);
          format.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
          Date date = format.parse("2016-04-29");
          Assert.assertEquals(date.getTime(), model.value.getTime());
          
          Assert.assertEquals(TimeZone.getTimeZone("Asia/Shanghai"), reader.getTimzeZone());
          Assert.assertEquals(Locale.CHINA, reader.getLocal());
          
          reader.close();
      }
      
      public static class Model {
          public Date value;
      }
  }
  