J'ai un LocalDate qui doit obtenir le premier et le dernier jour du mois. Comment je fais ça?
par exemple. 13/2/2014
J'ai besoin d'obtenir 1/2/2014
et 28/2/2014
dans les formats LocalDate .
Utilisation de trois classes LocalDate.
Utilisez simplement withDayOfMonth
et lengthOfMonth()
:
LocalDate initial = LocalDate.of(2014, 2, 13);
LocalDate start = initial.withDayOfMonth(1);
LocalDate end = initial.withDayOfMonth(initial.lengthOfMonth());
L'API a été conçue pour prendre en charge une solution qui correspond étroitement aux exigences de l'entreprise
Cependant, les solutions de Jon sont également très bien.
la source
YearMonth
Pour être complet, et plus élégant à mon avis, voyez cette utilisation de la
YearMonth
classe.Pour le premier et le dernier jour du mois en cours, cela devient:
la source
LocalDate
with
méthode?LocalDate
instance pour commencer.La réponse de Jon Skeets est juste et a mérité mon vote favorable, en ajoutant simplement cette solution légèrement différente pour être complète:
la source
Si quelqu'un vient chercher le premier jour du mois précédent et le dernier jour du mois précédent :
la source
la source
Vous pouvez essayer ceci pour éviter d'indiquer une date personnalisée et s'il est nécessaire d'afficher les dates de début et de fin du mois en cours:
Résultat:
la source
Essaye ça:
vous pouvez trouver la sortie désirée mais vous devez prendre soin du paramètre true / false pour la méthode getLastDayOfMonth
ce paramètre indique une année bissextile
la source
getLastDayOfMonth
- voir ma réponse pour une approche plus simple.si vous voulez le faire uniquement avec la classe LocalDate:
la source
Juste ici pour montrer mon implémentation pour la solution @herman
la source
LocalDateTime
est exactement la mauvaise classe à utiliser ici. Vous supprimez des informations de zone / offset précieuses.Date
n'a rien à voir avec la question, et devrait généralement être évitée.ZoneId.of("America/La_Paz")
. Pour les dates actuelles, cela donnera le même résultat, mais peut-être pas pour des dates historiques ou des dates dans un futur futur.