Я предпочитаю придерживаться формата даты javascripts ISO 8601,
при правильном разборе он будет автоматически обрабатывать разницу часовых поясов.
В java вы можете разобрать строковую дату JSON javascript следующим образом:
String iso8601Date = "2013-08-13T14:15:00.000Z";
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
Date parsedDate = formatter.parse(iso8601Date);
Если превратить его обратно в строку, у вас будет что-то вроде этого
//"2013-08-13T16:15:00.000+02:00"
String formattedDate = formatter.format(parsedDate);
Для анализа JSON я использую FlexJson, который вы можете настроить следующим образом.
//Serializing to JSON
DateTransformer dateTransformer = new DateTransformer("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
new JSONSerializer().transform(dateTransformer, Date.class).serialize(object);
//deserialize From JSON (replace object by java class)
JSONDeserializer<..Object..>().use(Date.class, dateTransformer).deserialize(json);