java.util.Date dteTmp = new java.util.Date ("2004/10/10 10:10:10"); SimpleDateFormat fmtDte = new SimpleDateFormat ("yyyy/mm/dd hh:mm:ss");dteTmp.setTime(dteTmp.getTime() - 3600000); //减去1小时,是以毫秒为单位的 System.out.println (fmtDte.format(dteTmp));
long minute=12345; Calendar time=new GregorianCalendar(); time.set(...);//调用这个方法设置基准时间void set(int year, int month, int date, int hour, int minute, int second) long timeMillis=time.getTimeInMillis();//获取时间; timeMillis-=minute*60;//得到计算之后的时间 time.setTimeInMillis(original); Date result=time.getTime();//得到结果
public date differ(Date d,long n){ Date dateNeed = d; dateNeed.setTime(d.getTime() - (n*60000)); return dateNeed; } 参数d是指定的日期,参数n是分钟数。 返回需要的日期。
我用如下的语句: java.util.Date dteTmp = new java.util.Date ("2004/05/01 10:10:10"); SimpleDateFormat fmtDte = new SimpleDateFormat ("yyyy/mm/dd hh:mm:ss"); int day= 2; System.out.println (dteTmp.getTime()); dteTmp.setTime(dteTmp.getTime() - day*60*60*24*1000); System.out.println (fmtDte.format(dteTmp)); //输出的结果是2004/10/29 10:10:10 //为何
我也用如下的语句: Calendar nowTime = new GregorianCalendar(); nowTime.set(2004,11,11,8,20,20); long timeMillis=nowTime.getTimeInMillis(); System.out.println(timeMillis); timeMillis=timeMillis - 11*60*60*24*1000; nowTime.setTimeInMillis(timeMillis); Date result=nowTime.getTime(); SimpleDateFormat fmtDte = new SimpleDateFormat ("yyyy/mm/dd hh:mm:ss"); System.out.println (fmtDte.format(result)); //输出的结果是2004/20/30 08:20:20 //又为何呀 //哪位能把一个完整的正确的程序给我呀,我送全部的分数,马上要交作业了,我搞不定呀
晕,,Calendar 类就直接有方法可以实现,,自己查查jdk文档
public static void main(String[] args) { int yy=2004; int mm=12; int dd=1; Calendar d=getMMM(yy,mm,dd,10000); System.out.println(d.get(Calendar.YEAR) +"-"+(d.get(Calendar.MONTH)+1) +"-"+d.get(Calendar.DATE));
SimpleDateFormat fmtDte = new SimpleDateFormat ("yyyy/mm/dd hh:mm:ss");dteTmp.setTime(dteTmp.getTime() - 3600000); //减去1小时,是以毫秒为单位的
System.out.println (fmtDte.format(dteTmp));
Calendar time=new GregorianCalendar();
time.set(...);//调用这个方法设置基准时间void set(int year, int month, int date, int hour, int minute, int second)
long timeMillis=time.getTimeInMillis();//获取时间;
timeMillis-=minute*60;//得到计算之后的时间
time.setTimeInMillis(original);
Date result=time.getTime();//得到结果
Date dateNeed = d;
dateNeed.setTime(d.getTime() - (n*60000));
return dateNeed;
}
参数d是指定的日期,参数n是分钟数。
返回需要的日期。
你把相差的时间转换成毫秒,
减一下,把结果再转换成日期就行了具体见jdoc
java.util.Date dteTmp = new java.util.Date ("2004/05/01 10:10:10");
SimpleDateFormat fmtDte = new SimpleDateFormat ("yyyy/mm/dd hh:mm:ss");
int day= 2;
System.out.println (dteTmp.getTime());
dteTmp.setTime(dteTmp.getTime() - day*60*60*24*1000);
System.out.println (fmtDte.format(dteTmp));
//输出的结果是2004/10/29 10:10:10
//为何
Calendar nowTime = new GregorianCalendar();
nowTime.set(2004,11,11,8,20,20);
long timeMillis=nowTime.getTimeInMillis();
System.out.println(timeMillis);
timeMillis=timeMillis - 11*60*60*24*1000;
nowTime.setTimeInMillis(timeMillis);
Date result=nowTime.getTime();
SimpleDateFormat fmtDte = new SimpleDateFormat ("yyyy/mm/dd hh:mm:ss");
System.out.println (fmtDte.format(result));
//输出的结果是2004/20/30 08:20:20
//又为何呀
//哪位能把一个完整的正确的程序给我呀,我送全部的分数,马上要交作业了,我搞不定呀
int yy=2004;
int mm=12;
int dd=1;
Calendar d=getMMM(yy,mm,dd,10000);
System.out.println(d.get(Calendar.YEAR)
+"-"+(d.get(Calendar.MONTH)+1)
+"-"+d.get(Calendar.DATE));
}
public static Calendar getMMM(int yy,int mm,int dd,int mcount){
Calendar d=Calendar.getInstance();
d.set(yy,mm-1,dd);
d.setTimeInMillis(d.getTimeInMillis()+mcount*60000);
return d;
}
public static Calendar getMMM(int yy,int mm,int dd,int mcount){
Calendar d=Calendar.getInstance();
d.clear();
d.set(yy,mm-1,dd);
d.setTimeInMillis(d.getTimeInMillis()+mcount*60000);
return d;
}
如果 你不用simpleDateFormat
而直接
System.out.println (dteTmp);
或者是下面的
System.out.println (result);
输出的日期是没有问题的。。
我也不明白为什么。
有人可以回答么?
("yyyy/mm/dd hh:mm:ss");
int day= 2; System.out.println (fmtDte.format(dteTmp)); //这里不正确 //System.out.println (dteTmp.getTime());
dteTmp.setTime(dteTmp.getTime() - day*60*60*24*1000);
System.out.println (dteTmp); //这里正确
System.out.println (fmtDte.format(dteTmp));//这里不正确
^
这里要大写,小写代表分钟即
SimpleDateFormat fmtDte = new SimpleDateFormat ("yyyy/MM/dd hh:mm:ss");
public static Calendar getMMM(int yy,int mm,int dd,int mcount){
Calendar d=Calendar.getInstance();
d.clear();
d.set(yy,mm-1,dd);
d.add(Calendar.MINUTE,mcount);
return d;
}