Java: ¿Cómo convertir una marca de tiempo UTC a hora local?

Tengo una marca de tiempo en UTC y quiero convertirla a hora local sin usar una llamada de API comoTimeZone.getTimeZone("PST"). ¿Cómo exactamente se supone que debes hacer esto? He estado usando el siguiente código sin mucho éxito:

private static final SimpleDateFormat mSegmentStartTimeFormatter = new        SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");

Calendar calendar = Calendar.getInstance();

    try {
        calendar.setTime(mSegmentStartTimeFormatter.parse(startTime));
    }
    catch (ParseException e) {
        e.printStackTrace();
    }

    return calendar.getTimeInMillis();

Valor de entrada de muestra:[2012-08-15T22:56:02.038Z]

debe devolver el equivalente de[2012-08-15T15:56:02.038Z]

Respuestas a la pregunta(3)

Su respuesta a la pregunta