日期:2014-05-17  浏览次数:20849 次

java中如何获取下个小时的日期????
比如说
java.text.SimpleDateFormat df=new java.text.SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); 
java.util.Calendar calendar=java.util.Calendar.getInstance(); 
Date sDate = DateBean.getFormatDate("2012-11-23 08:00:00");
calendar.setTime(sDate);
// calendar.roll(java.util.Calendar.DAY_OF_YEAR,1); 
// System.out.println( "天: "+df.format(calendar.getTime()));
// java.util.Calendar calendar2=java.util.Calendar.getInstance();
// calendar2.setTime(DateBean.formatStr(df.format(calendar.getTime())));
calendar.roll(java.util.Calendar.HOUR_OF_DAY,20); 
System.out.println( "小时: "+df.format(calendar.getTime()));

这段代码不行,比如说2012-11-23 08:00:00 20小时后的时间打印出来的是2012-11-13 20:00:00 这样肯定是不对的  


如何自动获取n个小时后的日期呢?????

------解决方案--------------------
不明白楼主想干嘛
------解决方案--------------------
用当前时间做时间的加减不能实现你的需求吗
------解决方案--------------------
你要的是这个么?
java.text.SimpleDateFormat df=new java.text.SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");
java.util.Calendar calendar=java.util.Calendar.getInstance();
calendar.setTime(new Date());
System.out.println( "当前时间: "+ df.format(calendar.getTime()));
calendar.add(java.util.Calendar.HOUR, 25);
System.out.println( "20小时后时间: "+ df.format(calendar.getTime()));
------解决方案--------------------
java.text.SimpleDateFormat df=new java.text.SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");
java.util.Calendar calendar=java.util.Calendar.getInstance();
calendar.setTime(new Date());
System.out.println( "当前时间: "+ df.format(calendar.getTime()));
calendar.add(java.util.Calendar.HOUR, 25);
System.out.println( "25小时后时间: "+ df.format(calendar.getTime()));


对的话,给分哈
------解决方案--------------------
用 calendar.add 方法。 

roll是不改变比指定字段高的字段值。所以日期不会变化,只改变了小时。

另外你那个 DateBean是啥东西? 直接用df.parse不好吗?
------解决方案--------------------
Java code

        Calendar date = Calendar.getInstance();
        System.out.println("    当前时间:"+date.getTime());
        date.add(Calendar.HOUR, 1);
        System.out.println("    一个小时后的时间:"+date.getTime());

------解决方案--------------------
Calendar cal = Calendar.getInstance();

SimpleDateFormat ftime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date trialTime = ftime.parse("2012-11-23 08:00:00");

cal.setTime(trialTime);

System.out.println(ftime.format(cal.getTime()));

cal.set(Calendar.HOUR, cal.get(Calendar.HOUR) + 20);

System.out.println(ftime.format(cal.getTime()));
------解决方案--------------------
来晚了。
------解决方案--------------------
是滴咯,呵呵~~