SimpleDateFormat d'Horodatage perd en précision avec la méthode getTime()
J'ai une méthode pour analyser une Chaîne de caractères (aaaa-MM-jj HH:mm:ss.SSS) d'un objet Date, à l'aide de SimpleDateFormat.
public static Timestamp convertToTimestamp(String stringToFormat) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
try {
Date date = dateFormat.parse(stringToFormat);
Timestamp tstamp = new Timestamp(date.getTime());
return tstamp;
}
catch (ParseException e) {
return null;
}
}
Toutefois, lorsque les Millisecondes fin en 0, par exemple, "2013-07-07 19:15:00.000", quand je fais la suite de l'affecter à un objet heure:
Timestamp tstamp = new Timestamp(date.getTime());
le résultat est le suivant 2013-07-07 19:15:00.0
Est-il un moyen de garder la précision de trois chiffres après la virgule sur le Millisecondes? Je me rends compte que je pourrais probablement faire une sorte de contrôle de la longueur et ajouter manuellement sur 0, mais la plus efficace, la méthode standard de garder cette précision serait préférable
Timestamp#toString()
est explicitement tronquer les zéros à droite; vous n'êtes pas perdre en précision.OriginalL'auteur deanmau5 | 2013-07-22
Vous devez vous connecter pour publier un commentaire.
La précision n'est pas perdu: les zéros de fin sont tout simplement tronqué.
Vous pouvez le vérifier avec:
qui imprime:
OriginalL'auteur assylias