请问Java如何得到七天以前的日期

请用Java编写一段程序打印输出当前日期减去7天的日期,格式为1-31-1900。... 请用Java编写一段程序打印输出当前日期减去7天的日期,格式为1-31-1900。 展开
 我来答
wyd2002
2009-10-17 · TA获得超过1353个赞
知道小有建树答主
回答量:236
采纳率:100%
帮助的人:69.7万
展开全部
常规写法是下面这样写的。
我们在获得指定时间倒退或者延迟天数的时候,
JAVA 建议使用 Calendar 这个对象来处理。

下面是我写的类 和 测试方法 :
-----------------
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateTest {

/**
* 请用Java编写一段程序打印输出当前日期减去7天的日期,格式为1-31-1900。
* @param args
* @throws ParseException
*/
public static void main(String[] args) throws ParseException {
DateTest dateTest = new DateTest();

DateFormat df = new SimpleDateFormat("MM-dd-yyyy");

//假象一个指定时间 1999年1月31日
Date before7Day = dateTest.getDate("1-31-1999", 7);

System.out.println("获得的新的时间是 : "+df.format(before7Day));

}

/**
* 根据输入的日期字符串 和 提前天数 ,
* 获得 指定日期提前几天的日期对象
* @param dateString 日期对象 ,格式如 1-31-1900
* @param lazyDays 倒推的天数
* @return 指定日期倒推指定天数后的日期对象
* @throws ParseException
*/
public Date getDate(String dateString , int beforeDays) throws ParseException{

DateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy");
Date inputDate = dateFormat.parse(dateString);

Calendar cal = Calendar.getInstance();
cal.setTime(inputDate);

int inputDayOfYear = cal.get(Calendar.DAY_OF_YEAR);
cal.set(Calendar.DAY_OF_YEAR , inputDayOfYear-beforeDays );

return cal.getTime();
}

}

-----------------

输出结果是 :
获得的新的时间是 : 01-24-1999
匿名用户
2009-10-17
展开全部
//做事不可误人,正解:A.java

import java.text.SimpleDateFormat;

public class A {
//从楼主题意可知,楼上几位的格式化字符串有点问题,细节问题,就是当日期或月份为单数时,
//输出的格式化后的字符串将会加前导‘0’,如:1-31-1999会变成:01-31-1999
private static final SimpleDateFormat df = new SimpleDateFormat("M-d-yyyy");
//用Calendar类来处理是没错的,但这里我用别的方法,就是减去或增加一天的毫秒数来实现天数的偏移。
private static final long dayMS=24*60*60*1000;

public static void main(String[] args) {
String str = getFormattedDate(-7);
System.out.println(str);
}

/**返回格式化后的当天日期字符串。*/
public static String getTodayFormattedDate(){
return getFormattedDate(0);
}

/**@param offsetDays
* 指定日期与当天的偏移量,单位为天。<br/>
* 返回格式化后的日期字符串。
* */
public static String getFormattedDate(int offsetDays){
long off=System.currentTimeMillis()+offsetDays*dayMS;
return df.format(new java.util.Date(off));
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
育知同创教育
2017-01-03 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
//获取7天以前时间
String str = "";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.roll(Calendar.DATE, -7);//日期回滚7天
str=sdf.format(lastDate.getTime());
System.out.println(str);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
20...5@qq.com
2009-10-17 · TA获得超过390个赞
知道答主
回答量:250
采纳率:0%
帮助的人:292万
展开全部
还真没注意,他这个年份放后面了

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class date {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Calendar c = Calendar.getInstance();
c.setTime(new Date());
c.add(c.DAY_OF_YEAR, -7);
System.out.println(new SimpleDateFormat("MM-dd-yyyy").format(c.getTime()));

}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小小不老
2009-10-17 · TA获得超过5425个赞
知道小有建树答主
回答量:1595
采纳率:0%
帮助的人:0
展开全部
从实际的角度来讲,以七天为一个周期,长短也比较合适。所 以尽管中国的传统工作周期是十天(比如王勃... 期六,七天之后的5月8日也是星期六。在日期上,8-1=7,正是7的倍数。同样,5月15 日、5月22日和5月29日...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式