我传入一个 String型的 日期格式: "yyyy-mm-dd"     例如:"2007-03-16" 
然后我希望将其转换为 "yyyy-mm-dd 08:00:00"        如:"2007-03-16 08:00:00" 
并且计算出他前一天的日期,格式也是"yyyy-mm-dd 08:00:00"  如:"2007-03-15 08:00:00"请大家指点指点,谢谢了!

解决方案 »

  1.   

    SimpleDateFormat sfd=new SimpleDateFormat("yyyy-MM-dd 08:00:00");
    Date d=sfd.parse("2007-03-16");//2007-03-16 08:00:00Calendar c=sfd.getCalendar();
    c.add(Calendar.DAY_OF_MONTH, -1);
    Date d=c.getTime();//2007-03-15 08:00:00
      

  2.   

    public class DateTimeTest
    {
    public static void main(String[] args)throws Exception
    {
    java.util.Map value=toLong("2007-03-01");
    System.out.println("today: "+value.get("today"));
    System.out.println("yestoday: "+value.get("yestoday"));
    }

    private static java.util.Map toLong(String today)
    {
    java.util.Map retVal=new java.util.HashMap();
    java.text.DateFormat f=new java.text.SimpleDateFormat("yyyy-MM-dd");
    java.util.Calendar c=java.util.Calendar.getInstance(); try
    {
    c.setTime(f.parse(today));
    } catch (ParseException e)
    {
    // XXX Auto-generated catch block
    e.printStackTrace();
    }
    c.set(java.util.Calendar.HOUR_OF_DAY, 8);
    c.set(java.util.Calendar.MINUTE, 0);
    c.set(java.util.Calendar.SECOND, 0);
    f=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    retVal.put("today", f.format(c.getTime()));
    c.add(java.util.Calendar.DAY_OF_MONTH,-1);
    retVal.put("yestoday", f.format(c.getTime()));
    return retVal;
    }
    }
      

  3.   

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd 08:00:00);
    Date date = sdf.parse("2007-03-16);
    System.out.println( sdf.format(date) );
      

  4.   

    谢谢!不过这样写:
    SimpleDateFormat sfd=new SimpleDateFormat("yyyy-MM-dd 08:00:00");
    Date d=sfd.parse("2007-03-16");//2007-03-16 08:00:00
    Calendar c=sfd.getCalendar();
    c.add(Calendar.DAY_OF_MONTH, -1);
    Date d=c.getTime();//2007-03-15 08:00:00
    有错误:Unparseable date: "2007-03-16"。
    因为我传入的是 一个String型的 日期格式: "yyyy-mm-dd"  而上面那个写法是把他当做了date对象类型的。
      

  5.   


    Date d = new SimpleDateFormat("yyyy-MM-dd").parse("2007-03-16");// 2007-03-16
    // 08:00:00
    System.out.println(new SimpleDateFormat("yyyy-MM-dd 08:00:00")
    .format(d));
    Date yesterday = new Date(d.getTime() - 1000L * 3600L * 24);
    System.out.println(new SimpleDateFormat("yyyy-MM-dd 08:00:00")
    .format(yesterday));
      

  6.   

    public class test_11 { /**
     * @param args
     */
    public static void main(String[] args) {
      
     String s = "2007-03-16";
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
     try {
    Date date=sdf.parse(s);
    SimpleDateFormat sdf1=new SimpleDateFormat("yyy-MM-dd 08:00:00");
    System.out.println(sdf1.format(date));
    Long l=date.getTime();
    Long l_1=l-24*60*60*1000L;
    System.out.println(sdf1.format(l_1));
    } catch (ParseException e) {
    e.printStackTrace();
    }
      
    }}
    结果:
    07-03-16 08:00:00
    07-03-15 08:00:00
      

  7.   

    谢谢大家! weiski_83()  和ncowboy  的都能够出现想要的结果
    再次感谢大家!