El análisis de la cadena de fecha formateada en otra zona horaria hasta el objeto de fecha no funciona

Estoy tratando de convertir una cadena de fecha formateada a objeto de fecha. La cadena de fecha tiene el formato de alguna otra zona horaria.

Cuando lo hagosdf.parse(String) me devuelve mi objeto fecha del sistema.

El código es el siguiente,

static Date convertGMTTime(String timeZone, long longDate){
    Date convertedTime = null;
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    try{
        Date date = new Date(longDate);
        System.out.println("timezone: "+timeZone +", timestamp: "+date);
        Locale locale = Locale.ENGLISH;
        TimeZone destTimeZone = TimeZone.getTimeZone(timeZone);// TimeZone.getDefault();
        System.out.println("Source timezone: "+destTimeZone);
/*          DateFormat formatter = DateFormat.getDateTimeInstance(
                    DateFormat.DEFAULT,
                    DateFormat.DEFAULT,
                    locale);
        formatter.setTimeZone(destTimeZone);*/
        sdf.setTimeZone(destTimeZone);
        String convertedDateStr = sdf.format(date);
        System.out.println("convertedDateStr: "+convertedDateStr);
        convertedTime = sdf.parse(convertedDateStr);
        System.out.println("convertedTime: "+convertedTime + "sdf: "+sdf.getTimeZone());
    }catch(Exception e){
        e.printStackTrace();
    }
    return convertedTime;
}

Apreciaría si alguien pudiera ayudar y señalar dónde me equivoco. Gracias por adelantado.

Salida:

zona horaria: Atlantic / Cape_Verde, marca de hora: mar 26 de junio 17:38:11 IST 2012
Zona horaria de origen: sun.util.calendar.ZoneInfo [id = "Atlantic / Cape_Verde", offset = -3600000, dstSavings = 0, useDaylight = false, transitions = 6, lastRule = null]

conversionDateStr: 2012-06-26 11:08:11

conversTime: Tue Jun 26 17:38:11 IST 2012
sdf: sun.util.calendar.ZoneInfo [id = "Atlantic / Cape_Verde", offset = -3600000, dstSavings = 0, useDaylight = false, transitions = 6, lastRule = null]

Algunos detalles más para compartir, Cuando uso otro objeto sdf (sin configurar la zona horaria para él), Me devuelve la hora y fecha correctas, pero aún se selecciona la zona horaria del reloj del sistema

Código

static Date convertGMTTime(String timeZone, long longDate){
    Date convertedTime = null;
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    SimpleDateFormat sdfParse = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    try{
        Date date = new Date(longDate);
        TimeZone destTimeZone = TimeZone.getTimeZone(timeZone);// TimeZone.getDefault();
        System.out.println("Source timezone: "+destTimeZone);
        sdf.setTimeZone(destTimeZone);
        String convertedDateStr = sdf.format(date);
        System.out.println("convertedDateStr: "+convertedDateStr );
        convertedTime = sdfParse.parse(convertedDateStr,new ParsePosition(0));
        System.out.println("convertedTime: "+convertedTime + "sdf: "+sdf.getTimeZone());
    }catch(Exception e){
        e.printStackTrace();
    }
    return convertedTime;
}

Salida

Source timezone: sun.util.calendar.ZoneInfo[id="Atlantic/Cape_Verde",offset=-3600000,dstSavings=0,useDaylight=false,transitions=6,lastRule=null]

convertedDateStr: 2012-06-26 12:24:56

convertedTime: Tue Jun 26 12:24:56 IST 2012 

sdf: sun.util.calendar.ZoneInfo[id="Atlantic/Cape_Verde",offset=-3600000,dstSavings=0,useDaylight=false,transitions=6,lastRule=null]

Entiendo que cuando no asigno la zona horaria a sdf toma la zona horaria del sistema, pero ¿por qué no muestra la hora en la zona horaria del sistema? Lo muestro en la zona horaria tal como estaba en String pero Timezone es diferente.

Y cuando configuro la zona horaria, devuelve el objeto de fecha según la hora de mi sistema, independientemente del hecho de que sdf tiene alguna otra zona horaria establecida.

¿Puede alguien explicar el comportamiento funcional de sdf.parse y sdf.format?

Para mí sdf.setTimeZone () tiene su impacto cuando usamos el formato y se anula cuando usamos sdf.parse (). Me parece bastante extraño.

Aprecio la ayuda en este sentido.

Respuestas a la pregunta(1)

Su respuesta a la pregunta