Java使用Calendar月操作(时间段内的月份、前三个月、月份加1)
生活随笔
收集整理的這篇文章主要介紹了
Java使用Calendar月操作(时间段内的月份、前三个月、月份加1)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
示例:
使用Calendar代替Data,對月份進行操作。
- 獲取當前時間和前三個月時間
- 獲取時間段內所有的年月集合
- 月份加1
1、獲取當前時間和前三個月時間
代碼:
?
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM");//格式化為2017-10 Calendar calendar = Calendar.getInstance();//得到Calendar實例 calendar.add(Calendar.MONTH, -3);//把月份減三個月 Date starDate = calendar.getTime();//得到時間賦給Data String stardtr = formatter.format(starDate);//使用格式化Data tv_start_time.setText(stardtr);//顯示如果想得到當前時間,把calendar.add(Calendar.MONTH, -3);去掉就可以了
?
結果:
當前時間:2017-10
減三個月:2017-07
2、獲取時間段內所有的年月集合
代碼:
?
/*** 獲取時間段內所有的年月集合** @param minDate 最小時間 2017-01* @param maxDate 最大時間 2017-10* @return 日期集合 格式為 年-月* @throws Exception*/public static List<String> getMonthBetween(String minDate, String maxDate) throws Exception {ArrayList<String> result = new ArrayList<String>();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");//格式化為年月Calendar min = Calendar.getInstance();Calendar max = Calendar.getInstance();min.setTime(sdf.parse(minDate));min.set(min.get(Calendar.YEAR), min.get(Calendar.MONTH), 1);max.setTime(sdf.parse(maxDate));max.set(max.get(Calendar.YEAR), max.get(Calendar.MONTH), 2);Calendar curr = min;while (curr.before(max)) {result.add(sdf.format(curr.getTime()));curr.add(Calendar.MONTH, 1);}return result;}結果:
?
[2017-01,2017-02,2017-03,2017-04,2017-05,2017-06,2017-07,2017-08,2017-09,2017-10]
3、月份加1
代碼:
?
/*** 月份加一* @param date* @return*/public static String monthAddFrist(String date) {DateFormat df = new SimpleDateFormat("yyyy-MM");try {Calendar ct = Calendar.getInstance();ct.setTime(df.parse(date));ct.add(Calendar.MONTH, +1);return df.format(ct.getTime());} catch (ParseException e) {e.printStackTrace();}return "";} 結果:?
2017-01 返回 2017-02
2017-12 返回 2018-01
?
???ﻌ??? ~ 厚著臉皮要個贊賞哈 ~ ???ﻌ???
總結
以上是生活随笔為你收集整理的Java使用Calendar月操作(时间段内的月份、前三个月、月份加1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 渲染管线概论
- 下一篇: 《软件过程管理》 第二章 软件过程成熟