Maison > Java > javaDidacticiel > Pourquoi SimpleDateFormat renvoie-t-il une « date non analysable » ?

Pourquoi SimpleDateFormat renvoie-t-il une « date non analysable » ?

Susan Sarandon
Libérer: 2025-01-01 02:22:09
original
287 Les gens l'ont consulté

Why Does SimpleDateFormat Throw

Dates non analysables avec SimpleDateFormat : spécifiez les paramètres régionaux ou utilisez DateTimeFormatter

Problème :
Lors de l'utilisation de SimpleDateFormat pour analyser les dates, vous pouvez rencontrer l'erreur "java.text.ParseException : date non analysable", en particulier lorsque les paramètres régionaux ne sont pas spécifiés.

Explication :
SimpleDateFormat nécessite des paramètres régionaux pour analyser correctement les dates. Si aucun n'est spécifié, il utilise les paramètres régionaux par défaut du système, qui peuvent ne pas correspondre au format analysé.

Solution :

  1. Toujours spécifier le locale : Utilisez la surcharge du constructeur de SimpleDateFormat qui accepte un argument Locale. Par exemple :
SimpleDateFormat dtfmt = new SimpleDateFormat("dd MMM yyyy hh:mm a", Locale.ENGLISH);
Copier après la connexion
  1. Utilisez l'API DateTimeFormatter moderne :
  • DateTimeFormatter est l'API préférée pour le formatage et analyse des dates et des heures.
  • Il offre une plus grande flexibilité et un plus grand contrôle sur le formatage, y compris la possibilité de spécifier une locale.

Démo avec DateTimeFormatter :

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class Main {
    public static void main(String[] args) {
        String strDateTime = "24 Oct 2016 7:31 pm";
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("d MMM uuuu h:m a").withLocale(Locale.ENGLISH);
        LocalDateTime ldt = LocalDateTime.parse(strDateTime, dtf);
        System.out.println(ldt); // prints 2016-10-24T19:31
    }
}
Copier après la connexion

Remarque :

  • Le locale par défaut spécifiée par DateTimeFormatter utilise la version actuelle du système locale.
  • Toujours spécifiez explicitement les paramètres régionaux pour éviter d'éventuels problèmes d'analyse.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal