一个日期字符串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>");//输出新日期

解决方案 »

  1.   

    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();
    }
      

  2.   

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

  3.   

    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());
      

  4.   

    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>");//输出新日期看下。