web-dev-qa-db-fra.com

java SimpleDateFormat

en Java, comment analyser une chaîne de date contenant une lettre qui ne représente pas un motif?

 "2007-11-02T14: 46: 03 + 01: 00" 
 String date = "2007-11-02T14: 46: 03 + 01: 00"; 
 String format = "aaaa-MM-jjTHH: mm: ssz"; 
 Nouveau SimpleDateFormat (format) .parse (date); 

 Exception dans le fil "principal" Java.lang.IllegalArgumentException: caractère de modèle illégal 'T' 
 à Java.text.SimpleDateFormat.compile (SimpleDateFormat.Java:769) 
 à Java.text.SimpleDateFormat.initialize (SimpleDateFormat.Java:576) 
 à Java.text.SimpleDateFormat. (SimpleDateFormat.Java:501) 
 à Java.text.SimpleDateFormat. (SimpleDateFormat.Java:476) 
13
user775187

Le temps que vous essayez d'analyser semble être au format format ISO 8601 . SimpleDateFormat ne supporte malheureusement pas tous les mêmes spécificateurs de fuseau horaire que l'ISO 8601. Si vous voulez pouvoir gérer correctement tous les formulaires spécifiés dans l'ISO, la meilleure chose à faire est d'utiliser Joda time .

Cet exemple est tout droit sorti du guide de l'utilisateur :

DateTime dt = new DateTime("2004-12-13T21:39:45.618-08:00");
5
Brad Mace

Tu peux essayer

String format = "yyyy-MM-dd'T'HH:mm:ssz";

Référence: from Javadoc

Le texte peut être cité en utilisant des guillemets simples (') pour éviter toute interprétation.

21
Bala R

Si vous ne vous souciez pas du fuseau horaire, vous pouvez utiliser cette méthode.

  public static Date convertToDate(String strDate) throws ParseException {
    Date date = null;
    if (strDate != null) {
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
      date = sdf.parse(strDate);
    }
    return date;
  }

Je ne sais pas si cela vous est toujours utile, mais je rencontre maintenant le même problème et, un peu plus tard, je le présente.

0
j2gl
String testDate = "2007-11-02T14:46:03+01:00";
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssz");
Date date = formatter.parse(testDate);
System.out.println(date);

Vous pouvez essayer similaire à ce qui précède

Vous pouvez utiliser le lien suivant link pour référence

0
gmhk