@Test
  public void testTimestampWithLocalTimeZone() throws Exception {
    Properties props = new Properties();
    props.setProperty(serdeConstants.LIST_COLUMNS, "__time");
    props.setProperty(serdeConstants.LIST_COLUMN_TYPES,
        "timestamp with local time zone");
    props.setProperty(serdeConstants.TIMESTAMP_FORMATS,
        "yyyy-MM-dd'T'HH:mm:ss'Z'");

    final TimeZone localTz = TimeZone.getDefault();
    TimeZone.setDefault(TimeZone.getTimeZone("US/Pacific"));

    try {
      JsonSerDe serde = new JsonSerDe();
      serde.initialize(new Configuration(), props, null, false);

      List<?> results = (List<?>) serde
          .deserialize(new Text("{\"__time\":\"2013-08-31T01:02:33Z\"}"));

      Assert.assertNotNull(results);
      Assert.assertEquals(1, results.size());
      Assert.assertTrue(results.get(0) instanceof TimestampTZ);
      Assert.assertEquals("2013-08-30 18:02:33.0 US/Pacific",
          results.get(0).toString());

    } finally {
      TimeZone.setDefault(localTz);
    }
  }
Test serializing "timestamp with local time zone". Take a time in GMT and
have it convert it to the local time.
serde/src/test/org/apache/hadoop/hive/serde2/TestJsonSerDe.java