SimpleDateFormat ("yyyy-mm-dd't'hhh: mm: ss'z '") Problema: Mostrando IST TimeZone
En Java, la clase SimpleDateFormat le permite formatear y analizar las fechas de acuerdo con un patrón predefinido. Al usar el patrón "aaa yyy-mm-dd't'hh: mm: ss'z '", se espera que represente una fecha y hora en la zona horaria de UTC. Sin embargo, surge un problema al analizar dicha cadena.
Considere el siguiente código:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); Date date = sdf.parse("2013-09-29T18:46:19Z"); System.out.println(date);
La salida esperada sería una fecha y hora en la zona horaria de UTC. Sin embargo, muchos usuarios han informado que en su lugar muestra una fecha y hora en la zona horaria IST (tiempo estándar indio). Esto lleva a la confusión y al manejo de la fecha incorrecta.
Solución: Establezca explícitamente el tiempo de tiempo
el problema surge porque el constructor SimpleDateFormat solo inicializa el patrón de fecha, pero no establece el establecido zona horaria explícitamente. Para corregir esto, debe establecer la zona horaria en UTC manualmente. Así es como lo hace:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); sdf.setTimeZone(TimeZone.getTimeZone("GMT")); Date date = sdf.parse("2013-09-29T18:46:19Z"); System.out.println(date);
configurando la zona de tiempo en GMT, el analizador SimpleDateFormat interpretará la cadena de entrada correctamente y mostrará la fecha y la hora en la zona horaria esperada
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3