"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué SimpleDateFormat analiza incorrectamente \"AAAA-MM-dd HH:mm\"?

¿Por qué SimpleDateFormat analiza incorrectamente \"AAAA-MM-dd HH:mm\"?

Publicado el 2024-12-21
Navegar:995

Why Does SimpleDateFormat Incorrectly Parse \

SimpleDateFormat analiza "AAAA-MM-dd HH:mm" incorrectamente

Al intentar analizar una cadena en el formato "AAAA-MM -dd HH:mm" a una fecha, algunos desarrolladores encuentran resultados de fecha inesperados. Esto ocurre cuando se utiliza la clase SimpleDateFormat con la configuración indulgente establecida en falso.

El siguiente fragmento de código demuestra el problema:

Date newDate = null;
String dateTime = "2013-03-18 08:30";
SimpleDateFormat df = new SimpleDateFormat("YYYY-MM-dd HH:mm", Locale.ENGLISH);
df.setLenient(false);
try {
    newDate = df.parse(dateTime);
} catch (ParseException e) {
    throw new InvalidInputException("Invalid date input.");
}

Este código produce una fecha incorrecta:

Sun Dec 30 08:30:00 EST 2012 (wrong)

Para resolver este problema, verifique que el formato de año especificado en el patrón SimpleDateFormat está "aaaa" en minúscula en lugar de "AAAA" en mayúscula.

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH);

Al realizar este ajuste, el código analizará la cadena "YYYY-MM-dd HH:mm" correctamente. Consulte la documentación de SimpleDateFormat para obtener más información.

Último tutorial Más>

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