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

怎样实现一个日期字符串+n小时得到一个新的日期?谢谢~
一个日期字符串d="2012/05/23 05:05:02",然后给d加上n小时,得到一个新的日期字符串



我实现了当前系统时间+n小时得到一个新日期,但无法实现用指定的日期+n小时

SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss", Locale.US);
Calendar date = Calendar.getInstance();


//Date d=sdf.parse("2012/05/23 05:05:02");//
//Date d=new Date("2012/05/23 05:05:02"); //设定一个日期,但后面给它+n小时就报错 d.HOUR cannot be resolved or is not a field


date.add(date.HOUR,23);//日期+23个小时,得到一个新日期

out.print(sdf.format(date.getTime())+"<br>");//输出新日期

------解决方案--------------------
public static Date relativeHours() {
Calendar date = Calendar.getInstance();
Date d=sdf.parse("2012/05/23 05:05:02");
date.setTime(d);
date.add(Calendar.HOUR, n);
return date.getTime();
}


------解决方案--------------------
用calendar的方法
set(int year, int month, int date, int hourOfDay, int minute) 
设置一下新的日历
然后在getTime() 一个新的date 试试看
------解决方案--------------------
Java code


        String str = "2012/05/23 05:05:02";
        Date date = new Date(str);
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.add(Calendar.HOUR_OF_DAY, 23);
        System.out.println(cal.getTime());

------解决方案--------------------
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss", Locale.US);
Calendar date = Calendar.getInstance();
date.set(2012,(04-1),23,05,05,02);//月份会大一个月所有你减1
Date d=date.getTime();
date.add(date.HOUR_OF_DAY,23);//日期+23个小时,得到一个新日期
System.out.print(sdf.format(date.getTime())+"<br>");//输出新日期

看下。
------解决方案--------------------
1#试试,多试试别的