10
votes

Comment convertir la chaîne en objet de temps en Java?

J'ai une valeur de chaîne de 08:03:10 , et je veux le convertir en temps . Comment puis-je faire cela en Java?


3 commentaires

C'est une question aussi commune, on aurait pu être posée 10 fois cette semaine. :) Je suppose que Google est à nouveau cassé.


En fait, cela ressemble à Chamal l'a demandé deux fois aujourd'hui.


Dupliqué possible de Java String à ce jour Conversion . Plus de plus près est Convertir une chaîne Java en temps, pas de date .


3 Réponses :


25
votes
 String str = "08:03:10 pm";
 DateFormat formatter = new SimpleDateFormat("hh:mm:ss a");
 Date date = formatter.parse(str);

IDE One demo
Must See  
API Doc

4 commentaires

N'oubliez pas de convertir la date à Java.sql.time.


Eh bien, Chamal Voulez-vous de ne pas sortir de la date.


Je suggérerais également de conversion en temps (c.-à-d.: heure = nouvelle heure (date.gettime ()) ) En raison de 2 raisons: 1 - op a spécifiquement demandé un temps Objet au lieu d'un date objet et 2 (qui sauvegardé 1) - peut-être qu'il a une mauvaise API, qui ne peut pas être changé (par exemple: Time GetTime (String S) - Il ne peut pas renvoyer une date , car il entraînera une erreur de compilateur).


CASTING FORMATTER.PARSE (STR) TO DATE est redondant.



6
votes

Si vous omettez le Période , c'est très facile. Appelez simplement le java.sql.time.valueof () méthode au lieu du Time Time = nouvelle heure ("20:03:10");


0 commentaires

1
votes

temps n'a pas de contractant qui prend longtemps, utilisez donc temps.set (date.gettime ())


0 commentaires