Mi primer intento fue:Analiza una fecha con la zona horaria "Etc/GMT"
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
Date date = formatter.parse(string);
Se lanza ParseException, así que encontré este truco:
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
TimeZone timeZone = TimeZone.getTimeZone("Etc/GMT");
formatter.setTimeZone(timeZone);
Date date = formatter.parse(string);
no funcionó bien, y ahora estoy estancado Analiza sin problemas si solo cambio la zona horaria a "GMT".
edición: una cadena de ejemplo para analizar sería "2011-11-29 10:40:24 Etc/GMT"
Edit2: yo preferiría no para eliminar la información huso horario completo. Estoy codificando un servidor que recibe la fecha de un usuario externo, por lo que quizás otras fechas tengan otras zonas horarias. Para ser más precisos: esta fecha específica que recibo proviene del recibo del servidor de Apple después de realizar una compra en la aplicación en una aplicación de iPhone, pero también podría recibir fechas de otras fuentes.
leave the small 'z' out. No considerará la zona horaria entonces. ¡Tu código funcionará bien! – HashimR