private Date deserializeToDate(JsonElement json) {
    synchronized (this.enUsFormat) {
      try {
        return this.enUsFormat.parse(json.getAsString());
      }
      catch (ParseException localParseException) {
        try {
          return this.iso8601Format.parse(json.getAsString());
        }
        catch (ParseException localParseException1) {
          try {
            String cleaned = json.getAsString().replace("Z", "+00:00");
            cleaned = cleaned.substring(0, 22) + cleaned.substring(23);
            return this.iso8601Format.parse(cleaned);
          } catch (Exception e) {
            throw new JsonSyntaxException("Invalid date: " + json.getAsString(), e); } 
        }
      }
    }
  }