2013-04-05 12 views
0

Je reçois mon entrée de date sous forme de chaîne au format dd-mm-yy via la page jsp. Parce que ce format est mieux à comprendre. Mais maintenant je veux stocker la date au format yyyy-MM-dd HH:mm:ss dans ma base de données. J'utilise le code suivant.Comment changer le format de la date en Java?

try 
    {  
    String s="30-04-2013"; 
    SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    d1=new SimpleDateFormat("yyyy-MM-dd").parse(s); 
    System.out.println(d1); 
    System.out.println(ft.format(d1)); 
    } catch(Exception e) { 
     System.out.println("Exception:"+e); 
    } 

format de date est mon Jsp dd-mm-yy, mais il donne réponse que

Tue Oct 04 00:00:00 IST 35 
0035-10-04 00:00:00 

ce qui est mon erreur? peut me dire n'importe qui s'il vous plaît

Merci.

+0

Une date dans une base de données n'a aucun format. Utilisez PreparedStatement.setDate() ou PreparedStatement.setTimestamp() pour stocker un objet Date ou Timestamp. –

Répondre

1
d1=new SimpleDateFormat("yyyy-MM-dd").parse(s); 

devrait être

d1=new SimpleDateFormat("dd-MM-yyyy").parse(s); 

parce que la date d'entrée chaîne que vous avez fourni String s="30-04-2013"; est du format, dd-MM-yyyy. Par conséquent, pour analyser cela, vous devez donner le format dd-MM-yyyy dans votre SDF.

+0

Et en utilisant 'setLenient (false)', le problème serait également détecté plus rapidement puisque votre date est 'retournée' pour s'adapter à votre modèle. – radimpe

+0

son fonctionnement. Je vous remercie. –

+0

Heureux d'aider! :) – SudoRahul

0

Modifiez le format dans votre code de yyyy-MM-dd à dd-MM-yyyy. Un simple débogage aurait résolu ce problème.

0

Voir ci-dessous le programme de travail. Voir la méthode d'analyse et de formatage.

import java.text.SimpleDateFormat; 
public class DateParsing { 

    public static void main(String args[]) { 

     String s = "30-04-2013"; 
     SimpleDateFormat ft = new SimpleDateFormat("dd-MM-yyyy"); 
     SimpleDateFormat nt = new SimpleDateFormat("yyyy-MM-dd"); 
     try { 
      System.out.println(nt.format(ft.parse(s))); 
     } 

     catch (Exception e) { 
      System.out.println("Exception:" + e); 
     } 
    } 

} 
+0

NO! vous utilisez des minuscules m pour les minutes http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html – DDK

+0

Oui minuscule m est pour les minutes @DDK est correct. – 9ine

0

je pense que vous devez passer l'objet Date au format () méthode de classe SimpleDateFormat au lieu de chaîne en lui passant

juste essayer de faire comme comme suit

SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
String formatted_date = ft.format(new Date()); 
System.out.println(formatted_date); 

laissez-moi savoir le statut

codage heureux

+0

'd1' est un objet Date uniquement. – SudoRahul