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

以下为在网上收集的多种解决方法  

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值