Maison >Java >javaDidacticiel >Comment corriger java.text.ParseException lors de l'analyse des dates sous Android ?

Comment corriger java.text.ParseException lors de l'analyse des dates sous Android ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-19 10:18:15905parcourir

How to Fix java.text.ParseException When Parsing Dates in Android?

Erreur d'analyse de date : java.text.ParseException avec SimpleDateFormat

Énoncé du problème

Lors de l'analyse d'une chaîne de date à l'aide de SimpleDateFormat sous Android, l'erreur suivante se produit :

java.text.ParseException: Unparseable date: "24 Oct 2016 7:31 pm" (at offset 3)

Solution : Spécifiez les paramètres régionaux avec SimpleDateFormat et Utiliser DateTimeFormatter pour les formats personnalisés

Pour résoudre l'erreur, il est crucial de spécifier explicitement des paramètres régionaux lors de l'utilisation de SimpleDateFormat. Cela garantit que le format de date est interprété correctement en fonction des conventions locales.

De plus, il est fortement recommandé de passer à l'API de date et d'heure Java 8 moderne, qui offre des fonctionnalités améliorées et élimine les problèmes potentiels avec les versions obsolètes. API comme SimpleDateFormat.

Pour les formats de date personnalisés, DateTimeFormatter doit être utilisé à la place de SimpleDateFormat. Il offre une analyse insensible à la casse, prend en charge plusieurs paramètres régionaux et est globalement plus flexible.

Exemple de code

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

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", Locale.ENGLISH);
        LocalDateTime ldt = LocalDateTime.parse(strDateTime, dtf);
        System.out.println(ldt);
    }
}

Pièges des paramètres régionaux par défaut

Les paramètres régionaux par défaut peuvent être problématiques lors de l'analyse dates, car elles varient en fonction des paramètres régionaux du système. Pour éviter ces problèmes, spécifiez toujours explicitement les paramètres régionaux souhaités.

Notes supplémentaires

  • Recommandation de l'API Java 8 : L'API de date et d'heure Java 8 est plus efficace, flexible et prend en charge plusieurs fuseaux horaires. Il est fortement encouragé de migrer vers cette API pour des fonctionnalités et une maintenance améliorées.
  • ThreeTen-Backport pour Java 6 et 7 : Si vous ne pouvez pas effectuer de mise à niveau vers Java 8, envisagez d'utiliser ThreeTen-Backport pour rétroporter la fonctionnalité de date et d'heure de Java 8 vers Java 6 et 7.

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!

Déclaration:
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