我需要得到一個月的最後一個日期(如org.joda.time.LocalDate
)。獲得第一個是微不足道的,但最後似乎需要一些邏輯,因爲月份的長度不同,而且二月的長度甚至會在幾年內變化。有沒有一種機制已經內置於JodaTime中,還是我應該自己實現?如何使用JodaTime獲取特定月份的最後日期?
回答
如何:
LocalDate endOfMonth = date.dayOfMonth().withMaximumValue();
dayOfMonth()
返回LocalDate.Property
代表現場「月日」在哪曉得始發LocalDate
的方式。
當它發生時,withMaximumValue()
方法甚至documented推薦它這個特殊的任務:
此操作是在每月的最後一天獲得LOCALDATE的,因爲一個月長度會有所變化非常有用。
LocalDate lastDayOfMonth = dt.dayOfMonth().withMaximumValue();
@Jon Skeet如何使用Java 8的新日期和時間API來獲取? – 2015-11-09 12:21:56
@ WarrenM.Nocos:我會用'dt.with(TemporalAdjusters.lastDayOfMonth())' – 2015-11-09 12:38:20
一個老問題,但頂谷歌的結果時,我一直在尋找這一點。
如果有人需要實際的最後一天爲int
,而不是使用JodaTime你可以這樣做:
public static final int JANUARY = 1;
public static final int DECEMBER = 12;
public static final int FIRST_OF_THE_MONTH = 1;
public final int getLastDayOfMonth(final int month, final int year) {
int lastDay = 0;
if ((month >= JANUARY) && (month <= DECEMBER)) {
LocalDate aDate = new LocalDate(year, month, FIRST_OF_THE_MONTH);
lastDay = aDate.dayOfMonth().getMaximumValue();
}
return lastDay;
}
使用JodaTime,我們可以這樣做:
public static final Integer CURRENT_YEAR = DateTime.now().getYear(); public static final Integer CURRENT_MONTH = DateTime.now().getMonthOfYear(); public static final Integer LAST_DAY_OF_CURRENT_MONTH = DateTime.now() .dayOfMonth().getMaximumValue(); public static final Integer LAST_HOUR_OF_CURRENT_DAY = DateTime.now() .hourOfDay().getMaximumValue(); public static final Integer LAST_MINUTE_OF_CURRENT_HOUR = DateTime.now().minuteOfHour().getMaximumValue(); public static final Integer LAST_SECOND_OF_CURRENT_MINUTE = DateTime.now().secondOfMinute().getMaximumValue(); public static DateTime getLastDateOfMonth() { return new DateTime(CURRENT_YEAR, CURRENT_MONTH, LAST_DAY_OF_CURRENT_MONTH, LAST_HOUR_OF_CURRENT_DAY, LAST_MINUTE_OF_CURRENT_HOUR, LAST_SECOND_OF_CURRENT_MINUTE); }
如這裏描述我的小要點github:A JodaTime and java.util.Date Util Class with a lot of usefull functions.
另一個簡單的方法是這樣的:
//Set the Date in First of the next Month:
answer = new DateTime(year,month+1,1,0,0,0);
//Now take away one day and now you have the last day in the month correctly
answer = answer.minusDays(1);
如果你的月份是12,那麼會發生什麼? – jon 2018-02-28 20:12:45
- 1. 從特定日期獲取日期,月份和年份
- 2. 月份的最後日期
- 3. 如何從YearMonth日期獲取月份的最後一天?
- 4. 如何獲取月份的最後日期
- 5. 使用Yii CDbCriteria獲取特定月份的日期
- 6. 如何獲取特定月份的日期
- 7. 在PHP中抓取特定月份的第一個日期和最後日期
- 8. 獲取指定日期的月份的第一個和最後一個日期
- 9. Scala - 獲取特定年份的所有月份和日期
- 10. 從日期獲取月份的日期
- 11. 如何使用Jodatime列出給定月份中的所有日期
- 12. 如何在C#.net中獲取選定月份的最後日期?
- 13. 使用Jquery獲取日期和月份
- 14. 如何使用當前月份和年份在scala上獲取第一個日期和最後一個日期
- 15. 如何獲取月份的月份發生日期
- 16. 如何在java中獲得給定月份和年份的最後日期
- 17. 如何使用mysql獲取本月最後一個星期日的日期?
- 18. 如何獲得java中給定月份的最小日期和最大日期
- 19. 如何僅獲取星期一在兩個給定日期之間的月份的最後一天的日期
- 20. 從給定日期獲取月份,日期和年份
- 21. PHP - 如何計算特定日期之後的月份數
- 22. 如何從日期時間使用JavaScript獲取日期,年份,月份?
- 23. 如何在Oracle中獲得當前月份的特定日期?
- 24. java獲取給定月份和給定年份的第一個日期和最後一個日期
- 25. 獲取特定月份和年份的上個星期六日期
- 26. 日曆 - 獲取月份和月份的日期
- 27. 如何添加日期以及月份到特定日期?
- 28. 使用月份日曆獲取選定星期的星期六日期值
- 29. 獲取特定月份
- 30. 獲取特定日期在一個月
只是單挑,這也適用於'DateTime'類型:) – vikingsteve 2014-09-26 11:14:16