2012-04-24 5 views
1

Comment convertir une date String sous la forme 24/04/2012 en une variable de date au format 24-Apr-12, qui peut ensuite être transmise à ma base de données Oracle.Conversion de la chaîne date à date

J'ai essayé, mais il dit la date de la chaîne est non analysable:

DateFormat format = new SimpleDateFormat("dd-MMM-yy"); 
Date newDate = (Date) format.parse(date); 
+0

Comme il n'a pas été dit avant ... regarder dans Joda-Time si vous allez être la manipulation des dates en Java. L'API est beaucoup, beaucoup plus propre que les paquets de date d'origine. – pcalcao

Répondre

1

Vous faites ce en arrière:

DateFormat format = new SimpleDateFormat("dd/MM/yyyy"); 
Date newDate = format.parse(date); 

DateFormat formatOutput = new SimpleDateFormat("dd-MMM-yyyy"); 
String output = formatOutput.format(newDate); 

Mais si ce que vous faites est passer la date à Oracle, vous devez vraiment utiliser un PreparedStatement

4

Je pense que vous confondez l'analyse et la mise en forme, essayez ceci:

String old_date = "24/04/2012"; 

DateFormat old_format = new SimpleDateFormat("dd/MM/yyyy"); 
Date newDate = (Date) old_format.parse(old_date); 

DateFormat new_format = new SimpleDateFormat("dd-MMM-yy"); 
String date = new_format.format(newDate); 

System.out.println(date); 
0
SimpleDateFormat sdf= new SimpleDateFormat("dd-MM-yy"); 
DateTime newDate = sdf.format(date); 
0

Essayez DateFormat format = new SimpleDateFormat("dd/MM/yyyy")

0

Pourquoi vous essayez de ne pas utiliser java.sql.Date.

Par exemple:

Date newDate = new java.sql.Date(date.getTime()); 

Alors vous pouvez juste donner un objet sql générique pour ce jour.

0

La classe Date de Java est assez difficile à utiliser dans de nombreux cas. Je recommande l'utilisation des bien meilleurs Joda Time cours:

DateTimeFormatter oldFormat = DateTimeFormat.forPattern("dd/mm/yyyy"); 
DateTimeFormatter newFormat = DateTimeFormat.forPattern("dd-MMM-yy"); 
DateTime dateTime = oldFormat.parseDateTime("24/04/2012"); 
String newDate = newFormat.print(dateTime);