今天主要记录下这几天遇到的一个需求点,就是涉及java日期加减(字符串输入输出)的一个算法:
例如今天日期为2013-09-07,那么输入就是这个字符串“2013-09-07”,想要的结果是这个日期加上一定数量天数如10天之后的日期,那期望的字符串就是2013-09-17。
怎么实现这个算法,代码如下:
**
* 获取指定日后 后 dayAddNum 天的 日期
* @param day 日期,格式为String:"2013-9-3";
* @param dayAddNum 增加天数 格式为int;
* @return
*/
public static String getDateStr(String day,int dayAddNum) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date nowDate = null;
try {
nowDate = df.parse(day);
} catch (ParseException e) {
e.printStackTrace();
}
Date newDate2 = new Date(nowDate.getTime() + dayAddNum * 24 * 60 * 60 * 1000);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
String dateOk = simpleDateFormat.format(newDate2);
return dateOk;
}
上面的代码就实现了java日期加减-字符串输入输出的需求,基本思路2点:
1、使用SimpleDateFormat 来做日期和字符串的转换。
2、使用Date的getTime()和x* 24 * 60 * 60 * 1000 的毫秒计算进行日期的加减。