Comment obtenir la première date et la dernière date du mois précédent? (Java)
Avec la date d'aujourd'hui, je devrais recevoir le premier jour et le dernier jour du mois précédent. Je suis incapable de trouver une quelconque logique.
Par exemple, sur le passage de 05/30/2012
je devrais obtenir 04/01/2012
et 04/30/2012
.
Toute aide sera très appréciée. Merci.
source d'informationauteur venkateshwarrao surabhi
Vous devez vous connecter pour publier un commentaire.
Avec
Agenda
Voir
tl;dr
...et...
Éviter de j.u.Date
Éviter le logiciel java.util.La Date et l' .Calendrier des classes comme ils sont très gênants. Au lieu d'utiliser l' java.en temps dans Java 8 et les versions ultérieures.
java.temps
La nouvelle java.cadre de temps dans Java 8 (Tutoriel) a des commandes pour cette.
La bien-nommée
YearMonth
classe représente un mois de l'année, sans précision de jour ou de temps. À partir de là, on peut se demander pour le premier et le dernier jour du mois.Joda-Time
Mise à JOUR: La Joda-Time projet est maintenant dans le mode de maintenanceavec l'équipe conseiller de la migration vers le java.le temps classes. Voir Tutoriel Oracle.
Dans Joda-Time 2.8, utilisez le
LocalDate
classe, si vous ne vous souciez pas le temps de la journée.Sur java.temps
La java.temps cadre est intégré dans Java 8 et les versions ultérieures. Ces classes permettent d'éviter la pénible vieux héritage date du temps des classes comme
java.util.Date
Agenda
&SimpleDateFormat
.La Joda-Time projet, maintenant dans le mode de maintenanceconseille la migration vers le java.le temps classes.
Pour en savoir plus, consultez les Oracle Tutoriel. Et de recherche de Débordement de Pile pour de nombreux exemples et des explications. La spécification est JSR 310.
Vous pouvez échanger java.temps objets directement avec votre base de données. Utiliser un Pilote JDBC compatible avec JDBC 4.2 ou plus tard. Pas besoin de chaînes, pas besoin de
java.sql.*
classes.Où obtenir le java.les classes de temps?
La ThreeTen-Extra projet s'étend java.temps avec d'autres classes. Ce projet est un terrain d'essai pour de possibles futurs ajouts à java.temps. Vous pouvez trouver quelques classes utiles ici comme
Intervalle
YearWeek
YearQuarter
et plus.Utilisation JodaTime
De sortie:
Explication: un DateMidnight objet est un Objet Date, n'ayant pas le temps de la journée d'information, qui semble être juste ce dont vous avez besoin. Si pas, remplacez toutes les occurrences de DateMidnight avec DateTime dans le code ci-dessus.
ainsi vous pouvez créer un calendrier de l'objet, définissez la date du premier jour du mois en cours (ce qui devrait être le premier :P) et puis vous pouvez le faire de deux opérations:
à partir de votre calendrier de l'objet vous pouvez soustraire une certaine période de temps, par exemple un mois (ce serait vous donner la date du premier jour du mois précédent, ou d'une journée, ce qui vous donne le dernier jour du mois précédent. je n'ai pas essayer, mais ce serait ma première étapes.
Voudrais aussi ajouter quelque chose à l'Jigar de réponse. Utiliser le
DateFormat
classe pour obtenir la date dans le format spécifié à la question:De sortie: