code: public static String getISO8601StringWithSpecificTimeZone(Date date, TimeZone zone) {
          DateFormat formatter = getFormatter();
          formatter.setTimeZone(zone);
          return formatter.format(date);
      }
docs: Return an ISO 8601 combined date and time string for specified date/time. The returned date and time format is
  compatible with JavaScript on Internet Explorer.
  
  @param date
  Date
  @param zone
  Time zone to be used.
  @return String with format "yyyy-MM-dd'T'HH:mm:ss.SSSXXX" where XXX corresponds to the input time zone. example:
  UTC time is represented as '2015-01-21T02:21:33.955Z' example: PST time is represented as
  '2015-01-20T18:21:33.955-08:00'