web-dev-qa-db-fra.com

Conversion de date de String en sql Date en Java donnant une sortie différente?

J'ai une forme de chaîne de Date. Je dois le changer à Sql Date. donc pour cela, j'ai utilisé le code suivant. 

String startDate="01-02-2013";
SimpleDateFormat sdf1 = new SimpleDateFormat("dd-mm-yyyy");
Java.util.Date date = sdf1.parse(startDate);
Java.sql.Date sqlStartDate = new Java.sql.Date(date.getTime());  

quand j'ai utilisé le code ci-dessus et l'exécuter. J'ai la sortie suivante. 

2013-01-01.  

Ici, le mois n'est pas converti correctement.
S'il vous plaît dites-moi où est le problème et fournissez un exemple de code pour obtenir un résultat correct?

21
Mr.Chowdary

mm est minutes . Vous voulez MM pendant mois :

SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy");

Ne vous sentez pas mal, cette erreur est souvent commise.

41
Bohemian

mmsignifie "minutes" . Utilisez MM à la place:

SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy");
7
NPE

C’est un moyen simple de convertir une chaîne en date d’utilisation et en date de date 

String startDate="12-31-2014";
SimpleDateFormat sdf1 = new SimpleDateFormat("MM-dd-yyyy");
Java.util.Date date = sdf1.parse(startDate);
Java.sql.Date sqlStartDate = new Java.sql.Date(date.getTime()); 
4
Zeeshan Akhter

Vous devez utiliser MM car mm signifie minutes.

Il existe deux manières de produire un motif mois.

SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy"); //outputs month in numeric way, 2013-02-01

SimpleDateFormat sdf2 = new SimpleDateFormat("dd-MMM-yyyy"); // Outputs months as follows, 2013-Feb-01

Extrait de code complet:

        String startDate="01-Feb-2013"; // Input String
        SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy"); // New Pattern
        Java.util.Date date = sdf1.parse(startDate); // Returns a Date format object with the pattern
        Java.sql.Date sqlStartDate = new Java.sql.Date(date.getTime());
        System.out.println(sqlStartDate); // Outputs : 2013-02-01
2
Dulith De Costa