在开发中经常会遇到,以指定的日期为基准,计算向后n天<n可以为正、负数,负数为向前移>。
我使用Date类的基础上使用Calendar类,处理方法基本如下
/**
* 获取指定日期往后一周的日期(几年几月几号)
*/
public static List<String> getdate7week(String strDate) {
List< String > dates = new ArrayList<>();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
try {
Date date = df.parse(strDate);//取时间
Calendar calendar = Calendar.getInstance();
calendar.setTime(date); //需要将date数据转移到Calender对象中操作
for (int i =0 ; i < 7 ; i++){
calendar.add(calendar.DATE, 1);//把日期往后增加n天.正数往后推,负数往前移动
// date=calendar.getTime(); //这个时间就是日期往后推一天的结果
SimpleDateFormat dateFm = new SimpleDateFormat("EEEE",Locale.getDefault());
entity.setWeek(dateFm.format(date));//这里是生成周几
dates.add(ConverToNormalString(calendar.getTime()));
}
} catch (ParseException e) {
e.printStackTrace();
}
return dates;
}
这里是另外一个类
//把日期转为字符串
public static String ConverToNormalString(Date date)
{
DateFormat df = new SimpleDateFormat( "yyyy-MM-dd" ,Locale.getDefault());
return df.format(date);
}
网友评论