89 votes

Analyse d'une chaîne en date avec un format différent en Java

Je veux convertir String a Date dans différents formats.

Par exemple,

Je reçois de l'utilisateur,

String fromDate = "19/05/2009"; // i.e. (dd/MM/yyyy) format

Je veux convertir ce fromDate comme un objet Date de "yyyy-MM-dd" format

Comment puis-je le faire ?

177voto

Michael Myers Points 82361

Jetez un coup d'œil à SimpleDateFormat . Le code se présente comme suit :

SimpleDateFormat fromUser = new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd");

try {

    String reformattedStr = myFormat.format(fromUser.parse(inputString));
} catch (ParseException e) {
    e.printStackTrace();
}

12voto

Agora Points 122

Utilisez le SimpleDateFormat classe :

private Date parseDate(String date, String format) throws ParseException
{
    SimpleDateFormat formatter = new SimpleDateFormat(format);
    return formatter.parse(date);
}

Utilisation :

Date date = parseDate("19/05/2009", "dd/MM/yyyy");

Pour des raisons d'efficacité, vous voudriez stocker vos formateurs dans un hashmap. Le hashmap est un membre statique de votre classe util.

private static Map<String, SimpleDateFormat> hashFormatters = new HashMap<String, SimpleDateFormat>();

public static Date parseDate(String date, String format) throws ParseException
{
    SimpleDateFormat formatter = hashFormatters.get(format);

    if (formatter == null)
    {
        formatter = new SimpleDateFormat(format);
        hashFormatters.put(format, formatter);
    }

    return formatter.parse(date);
}

7voto

Ritesh Kaushik Points 121

Convertir une date de type chaîne en une date java.sql.

String fromDate = "19/05/2009";
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
java.util.Date dtt = df.parse(fromDate);
java.sql.Date ds = new java.sql.Date(dtt.getTime());
System.out.println(ds);//Mon Jul 05 00:00:00 IST 2010

5voto

Matt Points 1447

Vérifiez les javadocs pour java.text.SimpleDateFormat Il décrit tout ce dont vous avez besoin.

3voto

James McMahon Points 14356

Alors que SimpleDateFormat va en effet fonctionner pour vos besoins, en plus vous pourriez vouloir consulter Joda Time qui est apparemment la base de la nouvelle bibliothèque Date de Java 7. Bien que je ne l'aie pas beaucoup utilisée, je n'ai entendu que de bonnes choses à son sujet et si vous manipulez beaucoup de dates dans vos projets, cela vaut probablement la peine de s'y intéresser.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X