2016-06-07 114 views
1

如果輸入是今天(6月7日),那麼它應該給我5月1日上午12:00至5月31日晚上11:59。 我正在使用日曆,但我想使用DateUtils。如何使用Apache DateUtils從第一天到最後一天使用time [JAVA]獲取前一個月?

Calendar calendar = Calendar.getInstance(); 
calendar.set(Calendar.DAY_OF_MONTH, -1); 
calendar.set(Calendar.HOUR,23); 
calendar.set(Calendar.MINUTE,59); 
calendar.set(Calendar.SECOND,59); 
System.out.println("Last date of month: " + calendar.getTime()); 


calendar.set(Calendar.DAY_OF_MONTH, 1); 
calendar.set(Calendar.HOUR, 12); 
calendar.set(Calendar.MINUTE,00); 
calendar.set(Calendar.SECOND,00); 
System.out.println("fir stdate of month: " + calendar.getTime()); 
+0

什麼是你覺得引人注目的DateUtils?是的,日曆尷尬使用,但你已經有一個工作解決方案,並可以輕鬆地將日曆轉換爲日期。 – micker

+0

雅我只是想使用DateUtils。但我發現DateUtils內部使用日曆。因此,最後使用日曆反正。 – Rthp

回答

0

我結束了使用JodaTime。更容易!

MutableDateTime dateTime = new MutableDateTime(); 
System.out.println("CurrentTime " + dateTime); 
dateTime.addMonths(-1); //last Month 
dateTime.setMinuteOfDay(0); 
dateTime.setSecondOfMinute(0); 
dateTime.setHourOfDay(12); 
dateTime.setDayOfMonth(1); //first Day of last Month  
System.out.println("first Day Time " + dateTime); 

dateTime.setDayOfMonth(dateTime.dayOfMonth().getMaximumValue()); //set Day to last Day of that month 
dateTime.setMinuteOfDay(59); 
dateTime.setSecondOfMinute(59); 
dateTime.setHourOfDay(23); //time set to night time 11:59:59 

System.out.println("last Day Time " + dateTime); 
1

DateUtils可以做必要的:

Date lastmonth = DateUtils.addMonths(new Date(), -1); 
System.out.println(lastmonth); 
System.out.println(DateUtils.truncate(lastmonth, Calendar.MONTH)); 
System.out.println(DateUtils.addMinutes(DateUtils.ceiling(lastmonth, Calendar.MONTH), -1)); 

編輯:添加輸出

Sat May 07 23:06:05 AST 2016 
Sun May 01 00:00:00 AST 2016 
Tue May 31 23:59:00 AST 2016 
+0

給我最後一行的錯誤:'方法天花板(Date,int)未定義爲DateUtils類型' – Rthp

+0

請確保您使用的是最新的DateUtils。如果使用maven然後添加以下到您的pom.xml <依賴性> org.apache.commons 公地lang3 3.4

相關問題