Java获取并输出两日期间的所有日期 .
生活随笔
收集整理的這篇文章主要介紹了
Java获取并输出两日期间的所有日期 .
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
做數據分析和統計時,經常會要統計一段日期間的所有數據,簡單的將日期當做數字來遍歷肯定是不妥的,因為月份的更替會導致數字的不連續,那么如何獲取指定起止日期間的所有日期呢,我們可以借由java.util.Calendar和java.util.Date庫來實現這一目的。示例代碼如下:
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Test { public static void main(String[] args) throws ParseException { //起止日期String startDate = "20130927";String endDate = "20131004";SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); Long startM = sdf.parse(startDate).getTime(); Long endM = sdf.parse(endDate).getTime(); long result = (endM - startM) / (24 * 60 * 60 * 1000); System.out.println("起止日期相差:" + result + "天"); Date startDay = sdf.parse(startDate); Calendar startTime = Calendar.getInstance(); startTime.clear(); startTime.setTime(startDay); for (int i = 0; i < (int)result; i++) { String date = String.format("%1$04d%2$02d%3$02d", startTime.get(Calendar.YEAR), (startTime.get(Calendar.MONTH)+1), startTime.get(Calendar.DAY_OF_MONTH));System.out.println(date);startTime.add(Calendar.DAY_OF_YEAR, 1); } } }
?
輸出結果如下:
起止日期相差:7天 20130927 20130928 20130929 20130930 20131001 20131002 20131003
?
總結
以上是生活随笔為你收集整理的Java获取并输出两日期间的所有日期 .的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA里16进制和字节数组互转
- 下一篇: java如何输出指定两个日期之间的所有日