Cómo elegir la zona horaria del formato ISO 8601 Cadena en una instancia de calendario

Como entrada tengo una cadena que es una cadena en ISO 8601 para representar la fecha. Por ejemplo:

"2017-04-04T09: 00: 00-08: 00"

La ultima parte deString, cual es"-08: 00" denota desplazamiento de la zona horaria. Convierto esta cadena en unCalendar instancia como se muestra a continuación:

Calendar calendar = GregorianCalendar.getInstance();
Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US).parse(iso8601Date);
calendar.setTime(date);

iso8601Fecha es "2017-04-04T09: 00: 00-08: 00"

Pero esto no selecciona la zona horaria y si obtengo la zona horaria deCalendar Por ejemplo, proporciona la instancia establecida actualmente de la computadora portátil y no recoge la marca de tiempo de ISO 8601 String. Compruebo la zona horaria a través de la instancia de calendario como:

calendar.getTimeZone().getDisplayName()

¿Alguien puede mostrar cómo elegir la zona horaria también en elCalendar ¿ejemplo?

Respuestas a la pregunta(3)

Su respuesta a la pregunta