A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© smile_joe 中级黑马   /  2013-4-20 15:12  /  1654 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 smile_joe 于 2013-4-20 19:20 编辑
  1. import java.text.DateFormat;
  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;


  5. public class Test2 {

  6.         /**
  7.          * @param args
  8.          * @throws ParseException
  9.          */
  10.         public static void main(String[] args)  {
  11.                 method();
  12.         }

  13.         public static void method()  {

  14.                 String s1 = "2010-10-10";
  15.                 String s2 = "2013/5/6";
  16.                 DateFormat df=new SimpleDateFormat();
  17.                 Date d1 = null;
  18.                 try {
  19.                         d1 = df.parse(s1);
  20.                         System.out.println(d1);
  21.                 } catch (ParseException e) {
  22.                         // TODO Auto-generated catch block
  23.                         
  24.                 }
  25.                 Date d2 = null;
  26.                 try {
  27.                         d2 = df.parse(s2);
  28.                         System.out.println(d2);
  29.                 } catch (ParseException e) {
  30.                         // TODO Auto-generated catch block
  31.                         
  32.                 }
  33.                 long l1=d1.getTime();
  34.                 long l2=d2.getTime();
  35.                 System.out.println((l2-l1)/(24*3600*1000));
  36.         }

  37. }
复制代码
编译通过,运行报错:java.lang包下的空指针异常,38行和14行,请帮忙看看....谢谢

评分

参与人数 1技术分 +1 收起 理由
HM汪磊 + 1 代码最好有注释,养成良好习惯.

查看全部评分

7 个回复

倒序浏览
这是修改后的代码
希望对你有帮助

package test;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test2 {
         
        /**
     * @param args
     * @throws ParseException
     */
    public static void main(String[] args)  {
            //Test2 p = new Test2();
            method();
    }

    static void method()  {

            String s1 = "2010-10-10 13:33:33";
            String s2 = "2013-5-6 22:22:22";
            DateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date d1 = null;
            try {
                    d1 = df.parse(s1);
                    System.out.println(d1);
            } catch (ParseException e) {
                    // TODO Auto-generated catch block
                    
            }
            Date d2 = null;
            try {
                    d2 = df.parse(s2);
                    System.out.println(d2);
            } catch (ParseException e) {
                    // TODO Auto-generated catch block
                    
            }
            long l1=d1.getTime();
            long l2=d2.getTime();
            System.out.println((l2-l1)/(24*3600*1000));
    }


}
回复 使用道具 举报
运行结果是
Sun Oct 10 13:33:33 CST 2010
Mon May 06 22:22:22 CST 2013
939
回复 使用道具 举报
本帖最后由 乘鱼飞 于 2013-4-20 16:03 编辑

改成这样:


                import java.text.DateFormat;
                import java.text.ParseException;
                import java.text.SimpleDateFormat;
                import java.util.Date;


                public class TestStudy {
                        public static void main(String[] args) throws Exception{
                                method();
                        }
                                public static void method()  {
                                String s1 = "2010-10-10";
                                String s2 = "2013/5/6";
                              DateFormat df=new SimpleDateFormat("yyyy-MM-dd");
                              DateFormat df2=new SimpleDateFormat("yyyy/MM/dd");
                               Date d1 = null;
                                try {
                                            d1 = df.parse( s1);
                                       
                                        System.out.println(d1.toString());
                                } catch (ParseException e) {
                                       
                                         System.out.println(e.getMessage());
                                }
                             
                              
                                Date d2 = null;
                                try {
                                        d2 = df2.parse(s2);
                                        System.out.println(d2.toString());
                                } catch (ParseException e1) {
                                        System.out.println(e1.getMessage());
                                }
                                long l1=d1.getTime();
                                long l2=d2.getTime();
                                System.out.println((l2-l1)/(24*3600*1000));
                        }
}
输出结果:
Sun Oct 10 00:00:00 CST 2010
Mon May 06 00:00:00 CST 2013
939
   
主要是自定义格式没设定
匹配不了
加上 DateFormat df2=new SimpleDateFormat("yyyy/MM/dd");
就行了

评分

参与人数 1技术分 +1 收起 理由
HM汪磊 + 1 代码最好有注释

查看全部评分

回复 使用道具 举报
如无问题,请改为以解决,谢谢:handshake
回复 使用道具 举报
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;


public class Test2 {

        /**
         * @param args
         * @throws ParseException
         */
        public static void main(String[] args)  {
               method();
        }

        /**
         *
         */
        public static void method()  {

                String s1 = "2010-10-10";
                String s2 = "2013/5/6";
               DateFormat df = new SimpleDateFormat("yyyy-mm-dd" );

                Date d1=new Date();
               
                try {   
                        d1 = df.parse(s1);
                        System.out.println(d1);
                } catch (ParseException e) {
                        // TODO Auto-generated catch block
                        
                }
               Date d2=new Date();
                try {   
                       d2 = df.parse(s2);
                        System.out.println(d2);
                } catch (ParseException e) {
                        // TODO Auto-generated catch block
                        
                }
               
                        long l1=d1.getTime();
               long l2=d2.getTime();
                System.out.println((l2-l1)/(24*3600*1000));}
               
        

}
回复 使用道具 举报
不知道是不是你要的结果,你自己看看吧
回复 使用道具 举报
乘鱼飞 发表于 2013-4-20 15:59
改成这样:

谢谢分析,刚用eclipse真是很难习惯,感觉比小红本难用.悲剧...
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马