首页 > 时间 减 天数 怎么写在jsp里面 2016-07-04 减去7天

时间 减 天数 怎么写在jsp里面 2016-07-04 减去7天

日期怎么和数做减法啊

2016-07-04减去7天
这样的一个表达式要怎么写 要求减完之后 是string类型接收

 给指点一下

你非要在jsp页面里面写吗?最好的是在后台Java里面处理好返回到页面。
jsp处理方法:在jsp页面导入java.util包,<%@ page import="java.util.*"%>

    Calendar c = Calendar.getInstance();
    c.setTime(new Date());// 原来的时间
    c.add(Calendar.DAY_OF_MONTH, -7);// 减7天
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String date = sdf.format(c.getTime());减7天后的时间


代码如下:

package tt;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import org.apache.commons.lang3.StringUtils;

public class TestDate {

    /* 三种时间格式 */
    public static final String DATE_FORMAT     = "yyyy-MM-dd";
    public static final String DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
    public static final String DATETIME        = "yyyyMMddHHmmss";

    public static void main(String[] args) {
        SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
        Date date = sdf.parse("2016-07-04");
        Date date2 = removeDays(date1, 7);
        System.out.println(toString(date2, DATETIME_FORMAT));
    }

    /* 日期减天数 */
    public static Date removeDays(Date oldDate, int n) {
        Date newDate = null;
        Calendar calOld = Calendar.getInstance();
        calOld.setTime(oldDate);
        int day = calOld.get(Calendar.DAY_OF_YEAR);
        Calendar calNew = Calendar.getInstance();
        calNew.setTime(oldDate);
        calNew.set(Calendar.DAY_OF_YEAR, day - n);
        newDate = calNew.getTime();
        return newDate;
    }

    /* Date转string类型 */
    public static String toString(Date date, String formatStr) {
        if (null == date || StringUtils.isBlank(formatStr)) return "";
        SimpleDateFormat sdf = new SimpleDateFormat(formatStr);
        return sdf.format(date);
    }

}

基本思路:2016-07-04是一个字符串,应该把它转换为秒为单位的整数,然后减去 7 * 24 * 60 * 60s,在转换回日期的字符串。

java的写法:

String s = "2016-07-04";
SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd");
Date d;
try {
    d = formatter.parse(s);
    long t = d.getTime() - 7 * 24 * 60 * 60 * 1000;
    d.setTime(t);
    System.out.println(formatter.format(d));
} catch (Exception e) {
    e.printStackTrace();
} finally {
    // ...
}
    

得到的结果:

2016-06-27
【热门文章】
【热门文章】