JAVA中日期减!!!!!!!!

我现在做的是,首先,得到系统的时间,然后通过查询,系统时间-7和当前系统时间,就是一周的数据。。。
但是日期怎么减我就不会了,麻烦看下代码:
----------------------
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dateStr = sdf.format(new java.util.Date());
List goodsList=new ArrayList();
String sql="select * from bdjtf where del='no' and time between "+dateStr+" and "+dateStr+"";
Object[] params={};
DB mydb=new DB();

主要是这句:
String sql="select * from bdjtf where del='no' and time between "+dateStr+" and "+dateStr+"";
我所期望的是dateStr-7<time<dateStr
麻烦高手了

如果一楼的方法可行的话,肯定一楼的方法更好。不行的话你就写个这个方法,调用一下吧。我测试了的,可以使用。
public void testGetLastWeekDate(){
String date = "2012/04/07";//自己定义了一个日期,方便跨月测试,你直接new一个Date然后从long time = d.getTime()-7*24*3600*1000;这一行开始写着走就行了。
DateFormat df = new SimpleDateFormat("yyyy/MM/dd");//将string类型的日期转换成Date类型
Date d = new Date();
try {
d = df.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
long time = d.getTime()-7*24*3600*1000;//求的1周以前的毫秒数
Date lastWeek = new Date();
lastWeek.setTime(time);将毫秒数设置进去,获得一周以前的时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");转换成string类型
String last = sdf.format(lastWeek);获得时间
System.out.println(last);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-15
不同数据库可能就不行了 而且 你在sql用的日期变量已经是日期格式了 应该不支持直接加减。。 你考虑下 上面的那个做法 先减7天得时间,然后在生成日期的
第2个回答  2012-05-15
Calendar cal = Calendar.getInstance();
cal.add(Calendar.Date,-7);
String oldTime = cal.getTime();
第3个回答  2012-05-15
用函数吧 应该都有的
mysql:
select * from bdjtf where del='no' and TIMESTAMPDIFF(week,time,now()) =1;
select * from bdjtf where del='no' and TIMESTAMPDIFF(hour,time,now()) =7*24;
第4个回答  2012-05-15
别人都给答案了我就不罗嗦了,不懂欢迎追问

用Java实现对日期的加减
1. 利用java.util.Calendar 通过Calendar类操作日期,使用add方法实现加减。正数值往后,负数值向前。2. 利用java.text.SimpleDateFormat与java.util.Date 结合这两个类处理日期格式,先将日期转换为Date对象,再进行加减操作,最后转回字符串格式。3. 使用GregorianCalendar GregorianCalendar提供了丰富的日期操...

java如何计算日期的加减
rightNow.setTime(dt);rightNow.add(Calendar.YEAR,-1);\/\/日期减1年 rightNow.add(Calendar.MONTH,3);\/\/日期加3个月 rightNow.add(Calendar.DAY_OF_YEAR,10);\/\/日期加10天 rightNow.add(Calendar.SECOND,60);\/\/日期加60秒天 Date dt1=rightNow.getTime();String reStr = sdf.format(dt1...

java如何进行时间加减?
java中对日期的加减操作*gc.add(1,-1)表示年份减一.*gc.add(2,-1)表示月份减一.*gc.add(3.-1)表示周减一.*gc.add(5,-1)表示天减一.*以此类推应该可以精确的毫秒吧.没有再试.大家可以试试.*GregorianCalendar类的add(int field,int amount)方法表示年月日加减.*field参数表示年,月.日...

java 中 日期如何相加减???
SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");java.util.Date begin=dfs.parse("2004-01-02 11:30:24");java.util.Date end = dfs.parse("2004-03-26 13:31:40");long between=(end.getTime()-begin.getTime())\/1000;\/\/除以1000是为了转换成秒 long day1...

java如何进行时间加
并支持正负数量的加减操作。例如,年份减一可以这样表示:GregorianCalendar gc = new GregorianCalendar();gc.setTime(new Date());gc.add(Calendar.YEAR, -1); \/\/ 年份减一 总之,Java提供了多种灵活的方式来处理日期的加减,`Calendar`、`SimpleDateFormat`和`GregorianCalendar`都是实用的工具。

java 中 日期怎么相加减
roll(f, delta) 将 delta 添加到 f 字段中,但不更改更大的字段。这等同于调用 add(f, delta)如果要计算2个日期之间的差距,可以取得自1970 年 1 月 1 日的 00:00:00.000各自的毫秒数字,然后相减 long millionSecondsForDate1 = date1.getTime();long millionSecondsForDate2 = date2.get...

如何实现java 日期加减
使用calendar类,有add方法,里面可以增加或者减少日期的,输出来就可以额。

java 两个日期相减的怎么做?
对已日期相减,最高效的做法就是将二者都转换成毫秒,相减之后再根据你的需求进行单位转换,比如你想显示相差的秒数,就除以1000,以此类推,翠花,上代码:\/* 随便选两个时间 *\/ String d1 = "2015-04-17"; String d2 = "2015-06-17"; \/* 先转成毫秒并求差 *\/ SimpleDateF...

java实现两个日期相减得到中间的年份和月份
public static void main(String[] args) { String startTime = "2012-07-01";String endTime = "2014-07-31";String[] arg1 = startTime.split("-");String[] arg2 = endTime.split("-");int year1 = Integer.valueOf(arg1[0]);int year2 = Integer.valueOf(arg2[0]);int ...

java中如何实现日期相减
求两个日期之间相隔的天数:Java代码示例:java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd");java.util.Date beginDate= format.parse("2007-12-24");java.util.Date endDate= format.parse("2007-12-25");long day=(date.getTime()-mydate.getTime())\/(...

相似回答