Cómo averiguar el valor de compensación GMT en android
Cómo averiguar los valores de GMT para el usuario, por ejemplo, es +05: 30 para la India. ¿Cómo calcular este valor de +05: 30 en Android?
Necesito esto porque estoy usando una biblioteca java en mi aplicación que tiene una función con este campo +05: 30 y quiero generar este campo por cálculo para que no tenga que llenar valores individuales para los países.
Esto es lo que funciona increíble
public double getOffset(){ TimeZone timezone = TimeZone.getDefault(); int seconds = timezone.getOffset(Calendar.ZONE_OFFSET)/1000; double minutes = seconds/60; double hours = minutes/60; return hours; }
Primero obtenga el tiempo del sistema de la época
System.currentTimeMillis()
A continuación, utilice un objeto de fecha, establezca la zona horaria a GMT e inicialice con el valye largo
dateObj.setTimeZone(TimeZone.getTimeZone("GMT"))
Para obtener el tiempo en GMT
utilice la siguiente función donde dateInString
es el valor de la fecha y el format
es el formato de fecha como yyyyMMddHH
public static long getDate(String dateInString,String format){ long date = 0; SimpleDateFormat dateFormat = new SimpleDateFormat(format); try { dateFormat.setTimeZone(TimeZone.getTimeZone("GMT")); Date d = dateFormat.parse(dateInString); date = d.getTime(); } catch (ParseException e) { e.printStackTrace(); } return date; }
Utilice el método siguiente para obtener UTC:
public int GetUnixTime() { Calendar calendar = Calendar.getInstance(); long now = calendar.getTimeInMillis(); int utc = (int)(now / 1000); return (utc); }
después de obtener UTC ahora lo comparó con la época en este sitio http://www.xav.com/time.cgi .
vea este enlace abajo: –
¿Cómo puedo obtener la fecha y la hora actuales en UTC o GMT en Java?
Si almacena un mapa entre las zonas horarias y sus compensaciones GMT en su aplicación, puede llamar a TimeZone.getDefault () para obtener el huso horario del dispositivo y realizar una búsqueda rápida para devolver el desplazamiento GMT. De esa manera usted no tiene que depender de los cálculos potencialmente difíciles de fecha / hora y puede estar seguro de que tiene el valor correcto.