2012-11-28 5 views
-2

J'essaye de convertir la chaîne en java Timestamp. J'utilise le code suivantChaîne Date to java Conversion TimeStamp

SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss:SSS"); 
Date parsedDate = dateFormat.parse(value); 
Timestamp timestamp = new Timestamp(parsedDate.getTime());    
return timestamp;    

Mon entrée est entrée :: "10/01/2012 06: 45: 23: 245946"

Mais je reçois une sortie erronée :: 2012-10-01 06: 49: 28.946

Qu'est-ce qui est faux dans ce code ??

+2

Geeez .. combien de fois prévoyez-vous poster la même question ?! – Dirk

+0

duplication possible de [Comment puis-je convertir la date de chaîne suivante en Java Data Format en Java?] (Http://stackoverflow.com/questions/13599865/how-do-i-convert-the-following-string-date- java-data-format-in-java) – Perception

+0

@Java_Dinesh - votre question a déjà été répondue [ici] (http://stackoverflow.com/a/13599926/680925). Vos valeurs d'entrée vraiment importantes pour les millisecondes sont en cours de conversion en minutes, vous devez les limiter à trois chiffres. – Perception

Répondre

1
10/01/2012 06:45:23:245946 

Ici vous avez passé 245946 millisecondes, ce qui est effectivement convertie en secondes et en minutes et il se 2012-10-01 06:49:28.946.

245946 milliseconds = 245 seconds and 946 milliseconds 
245 seconds 946 milliseconds = 4 minutes, 5 seconds and 946 milliseconds 

so 06:45:23+ 4 minutes 5 seconds and 946 milliseconds = 
06 hour 49 minutes 28 seconds 946 miliseconds 
+0

Salut, vous avez raison. Mais 245946 est micro secondes. comment je mentionne les microsecondes dans SimpleDateFormat ("MM/jj/aaaa HH: mm: ss: SSS"); –

+0

cochez cette [lien] (http://stackoverflow.com/questions/2132247/custom-date-format-cannot-be-parsed-java) –

0

Il est correct, toutes ces millisecondes supplémentaires sont simplement représentées comme des minutes et des secondes lorsque vous l'imprimez. Votre entrée inclut 245946 millisecondes, soit 4 minutes, 5 secondes et 946 millisecondes. Ainsi, votre sortie affiche 4 minutes et 5 secondes plus tard avec 946 millisecondes.

+0

Salut, vous avez raison. Mais 245946 est micro secondes. comment je mentionne les microsecondes dans SimpleDateFormat ("MM/jj/aaaa HH: mm: ss: SSS"); –

0

Etape 1: Parse date donnée

Etape 2: Utilisez le constructeur suivant pour obtenir l'horodatage absolu

java.sql.Timestamp timestamp = new Timestamp((year-1900), (month-1), date, hour, min, sec,nano);