您的位置:首页 > 编程语言 > Java开发

JAVA验证字符串转换为日期的合法性

2010-12-14 13:56 344 查看
以下为在网上收集的多种解决方法  

  1、  在处理日期的格式转换的时候总结些经验,和大家分享,如下:

       String  text  ="1996-2-1";

       Date  d  =  null; 

       SimpleDateFormat  df  =  new  SimpleDateFormat("yyyy-MM-dd"); 

       df.setLenient(false);//这个的功能是不把1996-13-3 转换为1997-1-3

        try

       { 

         d  =  df.parse(text); 

       }

       catch(Exception  e)

       { 

         d=new  Date();

         System.out.println("你输入的日期不合法,请重新输入"); 

       } 

       String sdata=df.format(d);

       System.out.println(sdata);

   2、使用StringTokenizer先分成两部分"2002-3-20",  

  "15:07:40",然后在分别使用StringTokenizer取得year,month,day,  

  hour,minute,second,最后使用GregorianCalendar设置日期,大概代码如下:  

  String   time="2002-3-20   15:07:40";  

  StringTokenizer   t=new   StringTokenizer(time,"   ");//空格分段  

  String   time1=time.nextToken();//time1为"2002-3-20"  

  String   time2=time.nextToken();//time2为"15:07:40"  

  再分别以"-"和":"为分隔符号取得个变量  

  StringTokenizer   t2=new   StringTokenizer(time1,"-");//"-"分段  

  String   year=t2.nextToken();  

  String   month=t2.nextToken();  

  String   day=t2.nextToken();

 

3、import   java.io.*;  

  import   java.util.*;  

  import   java.util.Date;  

  import   java.text.*;  

  public   class   test  

  {  

  public   static   void   main(String   args[]){  

              try{  

                      String   str   =   "2002-3-20   15:07:40";  

                      Date   dt   =   new   SimpleDateFormat("yyyy-MM-dd   H:m:s").parse(str);  

                      long   lgTime   =   dt.getTime();  

                      lgTime   +=   24*60*60*1000;//一天

                      lgTime   +=   60*60*1000;//一小时  

                      java.sql.Timestamp     ts   =   new   java.sql.Timestamp(lgTime);  

                      String   newDate   =   new   SimpleDateFormat("yyyy-MM-dd   H:m:s").format(ts);  

                      System.out.println("st:   "   +   newDate);  

              }   catch(Exception   ee   )   {  

                      ee.printStackTrace();  

              }  

  }  

  }

 

4、import   java.util.*;  

  import   java.text.*;  

  public   class   data  

  {  

  public   static   void   main(String[]   args)  

  {  

         

  String   ds   =   "2002-3-20   15:07:40";  

  SimpleDateFormat   df   =   new   SimpleDateFormat("yyyy-MM-dd   hh:mm:ss");  

  try    

  {  

  Date   d   =   df.parse(ds);//将字符串解析成了Date型  

  System.out.println("日期"   +   d);  

   

  GregorianCalendar   cal   =   new   GregorianCalendar();  

  cal.setTime(d);  

                 

                //现在开始就可以用cal.add(int   field,   int   amount)来加上任意的时间了  

                //另外,GregorianCalendar   cal   =   new   GregorianCalendar()就可以得到系统当前时间  

                 

  }  

  catch(ParseException   e)  

  {  

  System.out.println("Unable   to   parse   "   +   ds);  

  }  

  }  

  }  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息