Maison >Java >javaDidacticiel >Comment puis-je analyser efficacement des dates avec plusieurs formats à l'aide de SimpleDateFormat ?

Comment puis-je analyser efficacement des dates avec plusieurs formats à l'aide de SimpleDateFormat ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-23 16:03:17881parcourir

How Can I Efficiently Parse Dates with Multiple Formats Using SimpleDateFormat?

Analyse de dates dans des formats variés avec SimpleDateFormat

Lors de l'analyse de dates à partir des entrées de l'utilisateur, il est courant de rencontrer différents formats. La gestion de ces variations peut être difficile, en particulier compte tenu des règles de priorité de SimpleDateFormat.

Pour résoudre ce problème, utilisez des objets SimpleDateFormat distincts pour chaque format unique. Bien que cela puisse sembler nécessiter une duplication excessive de code, la flexibilité des règles de formatage des nombres de SimpleDateFormat permet une approche plus concise.

Par exemple, considérons la date suivante formats :

  • 9/09
  • 9/2009
  • 09/2009
  • 9/1/2009
  • 9 -1-2009

Ceux-ci peuvent être regroupés en trois catégories :

  • M/y (couvrant les trois premiers)
  • M/d/y (représentant le quatrième)
  • M-d-y (pour le cinquième)

La méthode suivante illustre la mise en œuvre :

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;

public class DateParser {

  private static List<String> FORMAT_STRINGS = Arrays.asList("M/y", "M/d/y", "M-d-y");

  public static Date parse(String dateString) {
    for (String formatString : FORMAT_STRINGS) {
      try {
        return new SimpleDateFormat(formatString).parse(dateString);
      } catch (ParseException e) {
        // Ignore parse exceptions and continue to the next format
      }
    }

    return null; // If no formats match, return null
  }
}

De cette façon, vous pouvez gérer une gamme de formats de date sans avoir besoin de blocs try/catch imbriqués excessifs ou de duplication de code.

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