java 时间 字符串转换和 计算处理

涉及到时间处理的不要转为字符串 数字加减 用java提供的类

下面是计算一个时间 前3年, 6个月等 

package cn.wxqkxx.qkb.common;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

/**
* DateUtils
*
* @author zhougf
* @date 2019/10/14
*/
public class DateUtil {

private static final SimpleDateFormat YEAR_FORMAT = new SimpleDateFormat("yyyy");
private static final SimpleDateFormat MONTH_FORMAT = new SimpleDateFormat("yyyyMM");
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyyMMdd");

/**
* 获取一个年份的前几年
* @param year 传入年份
* @param number 数值
* @return List<String> 年份集合
* @exception ParseException 转换异常
*/
public static List<String> getBeforeYear(String year, int number) throws ParseException {
Date date = DATE_FORMAT.parse(year);
List<String> yearList = new ArrayList<>(16);
if (number == 0) {
yearList.add(year);
return yearList;
}
for(int i = 1; i <= number; i++) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.YEAR, -i);
yearList.add(YEAR_FORMAT.format(calendar.getTime()));
}
return yearList;
}

/**
* 获取一个年份的前几年
* @param month 传入月份
* @param number 数值
* @return List<String> 月份集合
* @exception ParseException 转换异常
*/
public static List<String> getBeforeMonth(String month, int number) throws ParseException {
Date date = DATE_FORMAT.parse(month);
List<String> monthList = new ArrayList<>(16);
if (number == 0) {
monthList.add(month);
return monthList;
}
for(int i = 1; i <= number; i++) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH, -i);
monthList.add(MONTH_FORMAT.format(calendar.getTime()));
}
return monthList;
}

}
posted @ 2019-10-15 13:26  周广法GODOING  阅读(899)  评论(0编辑  收藏  举报