Comment définir la propriété de Temps en Java à l'aide de Joda-Time
Je veux régler l'heure, les minutes et les secondes dans les Joda-Time. Mais quand j'ai mis ce n'est pas la modification de la propriété.
Voici mon code:
import org.joda.time.DateTime;
public class JodaAkbar
{
public static void main(String args[])
{
DateTime dt = new DateTime();
System.out.println("Before:"+dt);
dt.hourOfDay().setCopy(5);
dt.minuteOfDay().setCopy(20);
dt.secondOfDay().setCopy(0);
System.out.println("After:"+dt);
}
}
Ici la sortie.
Before:2015-04-01T11:01:38.277+11:00
After:2015-04-01T11:01:38.277+11:00
J'obtiens le même résultat. Ce qui se passe mal ici?
EDIT:
En gros, je veux faire quelque chose de similaire comme le montre le code ci-dessous. Comme le code ci-dessous ne fonctionne pas correctement pour le format de 24 heures, je suis passé à Joda-Time.
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR, 13);
cal.set(Calendar.MINUTE, 25);
cal.set(Calendar.SECOND, 0);
- AKAIK
DateTime
est immuable, il ne peut pas être changé en eux, maissetCopy
va renvoyer une nouvelle instance deDateTime
avec la mise à jour des valeurs.DateTime after = dt.houtOfDay().setCopy(5)
...
Vous devez vous connecter pour publier un commentaire.
Joda-Time des objets immuables. Le mot "copie" dans
setCopy
est vous dire qu'il n'a pas définir ces champs directement, mais crée une copie de laDateTime
avec ce champ modifié.Une solution rapide est:
Plus couramment approche serait d'enchaîner plusieurs
with
méthodes:Ou tout faire avec un seul
withTime
appel:Par la voie, Java 8 introduit une nouvelle
java.time
package qui a été inspiré par Joda-Time. Le Joda-Time web site recommande de "De Java SE 8 et suivantes, les utilisateurs sont invités à migrer versjava.time
(JSR 310)."Regarder dans immuable des structures de données. Les modificateurs sur un JodaTime objet n'a pas vraiment modifier l'objet, mais de retour différentes instances construit à partir de l'objet d'origine avec le champ souhaité définir comme demandé.
Donc, en effet, vous êtes la construction d'un grand nombre d'éléments, et de ne pas les attribuer à quelque chose, de sorte qu'ils obtiennent les ordures collectées. Enfin, vous avez l'impression de le même (immuable) de l'élément deux fois.