Date dt=new Date();//当前日期        Date dt2=new Date();//先取当前日期
        try
        {
          dt2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(cl.getStartTime());//getStartTime是在上一个方法里得到的时间。实际上的时间是dt2只比dt少几秒。
        }
        catch(Exception e)
        {
          lg.info(e.getMessage());
        }
        String aaaaaaaaaaaaaaa=String.valueOf(dt.getTime());
        String bbbbbbbbbbbbbbb=String.valueOf(dt2.getTime());
        long nSeconds=dt.getTime()-dt2.getTime();//两个时间之间的毫秒数
        double nMinutes=nSeconds/1000/60;        //把换成分()为什么dt的值会比dt2的值大很多。上面的结果得到是720.0。不知道为什么。实际上的时间是dt2只比dt少几秒。

解决方案 »

  1.   

    上面得到的值是:aaaaaaaaaaaaaaa=1145521784000
    bbbbbbbbbbbbbbb=1145478550000
      

  2.   

    protected long getTimeDuration(String sBgnDateTime,String sEndDateTime)
        {
            Date oBgnDate=null; 
            Date oEndDate=null;
            //DateFormat df=DataFormat.getDataInstance("yyyy-MM-dd");
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    long nDuration=0;
            
            if(sBgnDateTime!=""&&sBgnDateTime!=null&&sEndDateTime!=null&&sEndDateTime!="")
            {
                try
                {
                    oBgnDate=formatter.parse(sBgnDateTime);
                    oEndDate=formatter.parse(sEndDateTime);                
                }
                catch(Exception ex)
                {
                    log.error(sBgnDateTime+" or "+sEndDateTime +" is error");                
                }
                nDuration=(oEndDate.getTime()-oBgnDate.getTime())/6000;
            }        
            return nDuration;
        }
      

  3.   

    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;public class Test {
        public static void main(String[] args) throws ParseException {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
            Date d1 = sdf.parse("2006/03/21");
            Date d2 = sdf.parse("2006/04/01");
            long days = (d2.getTime() - d1.getTime()) / (1000 * 60 * 60 * 24);  
            System.out.println(days);
        }
    }把具体的时间改成你自己需要的就可以了
      

  4.   


    Date dt=new Date();//当前日期        Date dt2=new Date();//先取当前日期
            try
            {
              //dt2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(cl.getStartTime());//getStartTime是在上一个方法里得到的时间。实际上的时间是dt2只比dt少几秒。
            }
            catch(Exception e)
            {
              //lg.info(e.getMessage());
            }
            String aaaaaaaaaaaaaaa=String.valueOf(dt.getTime());
            String bbbbbbbbbbbbbbb=String.valueOf(dt2.getTime());
            long nSeconds=dt.getTime()-dt2.getTime();//两个时间之间的毫秒数
            double nMinutes=nSeconds/1000/60;        //把换成分()
            System.out.println(aaaaaaaaaaaaaaa);
            System.out.println(bbbbbbbbbbbbbbb);
            System.out.println(nMinutes);1145522621044
    1145522621044
    0.0
      

  5.   

    108041217(josso) ( ) 信誉:90  
    oBgnDate=formatter.parse(sBgnDateTime);
    **************************************
    这句是怎么来的? CristinNa(深白色) ( ) 信誉:100  2006-04-20 16:45:00  得分: 0  
      Date d1 = sdf.parse("2006/03/21");
     **********************************************************************
    我需要的时带时间到秒的。而且这个日期也不是写死的。 sole_lodestar() ( ) 信誉:98  2006-04-20 16:45:00  得分: 0  
     //dt2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(cl.getStartTime());//getStartTime是在上一个方法里得到的时间。实际上的时间是dt2只比dt少几秒。
    *******************************
    你把这一行注释了,当然就对了。这一行是取另一个日期的,不能注释。
      

  6.   

    sole_lodestar() ( ) 信誉:98  2006-04-20 16:43:00  得分: 0  去掉try,没问题********************************
    try是不能去掉的。这句话必须抛出异常。
      

  7.   

    CristinNa(深白色) ( ) 信誉:100 比如你说的:
    Date d1 = sdf.parse("2006/03/21");
    **************************************************************
    我怎么得到当前的带年月日时分秒的系统时间?就是不会呀!谢谢!
      

  8.   

    CristinNa(深白色) ( ) 信誉:100 
    格式改成yyyy-MM-dd hh:mm:ss**********************************************************
    我知道这样的格式:
     dt2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(abc);像这样的转换。就是转换abc这个时间。我现在就是想得到带年月日时分秒的系统时间?应该怎么得到呢????
      

  9.   

    java.util.Date tdate = new java.util.Date();
    String nowtime = new Timestamp(tdate.getTime()).toString();//得到系统时间,带时分秒
      

  10.   

    提示找不到:Timestamp!应该引用那个命名空间?谢谢!麻烦了。
      

  11.   

    import java.sql.Timestamp;
    import java.text.ParseException;java.util.Date tdate = new java.util.Date();
    String nowtime = new Timestamp(tdate.getTime()).toString();
    nowtime = nowtime.substring(0, 19);//得到带时分秒的当前系统时间
      

  12.   

    稍等。我正改着。我发现
    String nowtime = new Timestamp(tdate.getTime()).toString();   
    得到的是:2006-04-20 17:27:55.937      Date dt=new Date();
          String startTime=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(dt);得到的是:2006-04-20 05:27:48
      

  13.   

    import java.sql.Timestamp;
    import java.text.ParseException;java.util.Date tdate = new java.util.Date();
    String nowtime = new Timestamp(tdate.getTime()).toString();
    nowtime = nowtime.substring(0, 19);//得到带时分秒的当前系统时间
    这个就可以得到你想要的了