Java: comment ajouter des secondes à Timestamp?
Je n'arrive pas à ajouter des secondes à Java Timestamp.
J'ai ça, mais, il me donne la même date:
int sec = 600;
java.sql.Timestamp ts_from_ws = new java.sql.Timestamp(retry_date);
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(ts_from_ws.getTime());
cal.add(Calendar.SECOND,sec);
java.sql.Timestamp ts_new_date_ws = new java.sql.Timestamp(cal.getTime().getTime());
source d'informationauteur user63898
Vous devez vous connecter pour publier un commentaire.
Le code que vous avez obtenu fonctionne pour moi. Comme une brève, mais complète du programme:
De sortie:
Remarque la différence de 10 minutes, c'est à dire 600 secondes.
Bien sûr, vous perdez la sous-précision à la milliseconde, ce qui peut très bien ne pas être idéal, et il va à l'encontre de ce que je suis normalement utiliser un timestamp pour, en premier lieu - mais il ne ajouter les secondes...
Une autre option serait d'utiliser
Timestamp
directement:J'ai toujours privilégié la concision:
ou si vous voulez par rapport à "maintenant":
Dans java 8vous pouvez tirer parti de la nouvelle
java.time.Instant
. Dansjava.sql.TimeStamp
deux nouvelle méthode sont ajoutés à partir de java 1.8:public static Timestamp from(Instant instant)
etpublic Instant toInstant()
.Afin d'ajouter de la sec, nous pouvons convertir les
TimeStamp
Instant et appelez ensuiteplusSeconds
et puis retour à la Horodatage:Ou d'une ligne: