Je veux obtenir l'Année, le Mois, le Jour, etc à partir de Java Date à comparer avec le Calendrier Grégorien, la date en Java. Est-ce possible?
J'ai un objet Date en Java stockées en tant que Java est de type Date.
J'ai aussi un Calendrier Grégorien date de création. Le calendrier grégorien, la date n'a pas de paramètres et, par conséquent, est une instance de la date d'aujourd'hui (et de temps?).
Java avec date, je veux être en mesure d'obtenir l'année, le mois, le jour, l'heure, les minutes et les secondes à partir de la java de type date et de comparer la gregoriancalendar date.
J'ai vu que pour le moment, la Java date est stockée comme une longue et les seules méthodes disponibles semblent juste écrire le long comme une date formatée chaîne. Est-il un moyen d'accéder à l'Année, le mois, le jour, etc?
J'ai vu que le getYear()
, getMonth()
, etc. méthodes pour Date
de classe ont été dépréciés. Je me demandais quelle est la meilleure pratique pour utiliser le Java instance de Date que j'ai avec le GregorianCalendar
date.
Mon objectif final est de faire un calcul de date afin que je puisse vérifier que le Java date est au sein des nombreuses heures, minutes, etc date d'aujourd'hui et de temps.
Je suis encore un débutant en Java et je suis un peu perplexe par cette.
- Hey tout ce que vous utilisez n'utilisez pas
Date.getYear()
.Il souffre de problèmes(que je ne connais pas).Date.getYear()
une fois analysé ma date 30/06/2017 et il a renvoyé mon année comme 117. Voir où il a atterri, deux mille ans en arrière. Mais lorsque j'imprime tout simplement l'Objet Date,Sortie était très bien.Mais pasDate.getYear();
. - Pour info: Vous êtes en utilisant gênants vieille Date-heure classes qui sont maintenant héritage, supplanté par les modernes java.les classes de temps.
Vous devez vous connecter pour publier un commentaire.
Utiliser quelque chose comme:
Méfiez-vous, les mois commencent à 0, pas 1.
Modifier: Depuis Java 8 c'est mieux d'utiliser java.temps.LocalDate plutôt que java.util.Calendrier. Voir cette réponse pour savoir comment faire.
cal.add(Calendar.DAY_OF_MONTH, -48)
de faire, au jour de l'arithmétique sur le Calendrier des objets. Et vous pouvez comparer les deux objets à l'aide decal.compareTo(anotherCal)
.Calendar
instance est un objet mutable représentant un instant sur un calendrier. Chaque fois que vous appelez uneset*
méthode, l'instant de changement, etget*
méthodes renvoie potentiellement de nouvelles valeurs.Avec Java 8 et les versions ultérieures, vous pouvez convertir le Date objet d'un LocalDate objet, puis obtenir facilement de l'année, le mois et le jour.
Noter que
getMonthValue()
retourne un int valeur de 1 à 12.LocalDate
dans Java 8 est la meilleure solution qui permet d'économiser votre temps, une autre solution à l'aide deCalendar
etDate
est plein de trouble.Vous pourriez faire quelque chose comme cela, il va vous expliquer comment le
Date
classe fonctionne.mm
indique les minutes, les majusculesMM
signifie " mois de l'année.EDIT: La sortie pour
date
=Fri Jun 15 09:20:21 CEST 2018
est:Il pourrait être plus facile
getYearMonthDay2(le calendrier de la solution) est dix fois plus rapide. Maintenant, vous avez aaaa MM jj 00 00 00, puis de les comparer à l'aide de la date.comparer
java.util.Date
,java.util.Calendar
, etjava.text.SimpleDateFormat
sont maintenant héritage, supplantée par la java.temps les classes intégré dans Java 8 et les versions ultérieures. Voir Tutoriel par Oracle.Être soigneusement mont repartir de 0 non 1. Et aussi Calendrier utilisez le pm comme suis donc qu'être très soigneusement lors de l'utilisation des Heures de sna minutes.
HTML: