Hora del reloj Android GMT

Para 2016 el Gobierno turco decidió quedarse GMT + 3 zona horaria para ahorrar luz del día, pero en android:

Calendar calendar = Calendar.getInstance(); TimeZone tz = TimeZone.getTimeZone("UTC"); calendar.setTimeInMillis(timestamp * 1000); Date currentTimeZone = (Date) calendar.getTime(); calendar.add(Calendar.MILLISECOND, tz.getOffset(calendar.getTimeInMillis())); 

Así que el problema es;
está mostrando GMT + 3 para la fecha antes de noviembre:
Mié Oct 26 18:00:00 GMT + 03: 00 2016
pero para después de noviembre:
Lun Noviembre 07 20:00:00 GMT + 02: 00 2016

que debería haber permanecido en GMT + 3 durante todo el año, es que un problema especial para Android lib de TimeZone o estoy haciendo algo mal?
Gracias,

ACTUALIZAR
Aunque he agregado un cheque para los parámetros timezone y gmt,
La situación será un poco caótica para los dispositivos Android que utiliza la zona horaria de Turquía, causa después del 29 de octubre la hora del dispositivo será una hora antes de lo normal, hasta que Android libera una actualización para eso y el usuario aplica eso.

Vea la nota de liberación de tzdb-database para la versión 2016g:

Release 2016g – 2016-09-13 08:56:38 -0700

Cambios en los sellos de tiempo futuros

 Turkey switched from EET/EEST (+02/+03) to permanent +03, effective 2016-09-07. (Thanks to Burak AYDIN.) Use "+03" rather than an invented abbreviation for the new time. 

Obviamente, su dispositivo Android todavía utiliza una versión anticuada de zona horaria. En realidad, tiene las siguientes opciones para continuar:

  • Espera por una nueva versión de Android (no es atractiva, no se recomienda).
  • Utilice otra biblioteca externa como Joda-Time-Android o mi biblioteca Time4A que ya utilizan 2016h ( Threeten-ABP todavía está detrás, en realidad en 2016e).
  • O escriba su propio hack usando compensaciones fijas para Turquía, por ejemplo TimeZone.getTimeZone("GMT+03")
  • Cómo dar formato al tiempo no fecha en Android o Java?
  • Notificación de Android Push (lento)
  • Android: ¿Activar / desactivar un botón en Runtime?
  • Glide image loading timeout increase
  • ¿Mostrando la hora actual en Android y actualizarla?
  • ¿Hay una manera de cargar arbitrariamente recursos en tiempo de ejecución en Android?
  • Dibuja línea personalizada entre dos elementos en TableLayout Android
  • ¿Cómo se muestra correctamente la posición / duración de un MediaPlayer?
  • android: mostrar la notificación en un momento específico?
  • Androide; Msgstr "Se ha agotado el tiempo de envío de claves ..."
  • Formato de fecha y hora
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.