zoukankan      html  css  js  c++  java
  • 检测日期字符串是否为合法(java版)

      1      /**
      2       * 检测日期字符串是否为合法
      3       * @param dateStr
      4       * @param format
      5       * @return
      6       */
      7      public static final boolean checkDateFormat(String dateStr,String format) throws NumberFormatException{
      8             if(dateStr == null || "".equals(dateStr) ) return false;
      9          if(dateStr.length() != format.length()){
     10            //alert(objName+"长度和格式("+format+")要求的不一致,请重新输入");
     11            return false;
     12          }  
     13            Integer year=null,month=null ,day=null,hour=null,minute= null,second= null;
     14            
     15                  if( "YYYY".equals(format)){
     16                      year = Integer. valueOf(dateStr);
     17                 } else if( "YYYYMM".equals(format)){
     18                     year =  Integer.valueOf(dateStr.substring(0,4));
     19                     month =  Integer.valueOf(dateStr.substring(4,6));
     20                 } else if( "YYYYMMDD".equals(format)){
     21                     year =  Integer.valueOf(dateStr.substring(0,4));
     22                     month =  Integer.valueOf(dateStr.substring(4,6));
     23                     day =  Integer.valueOf(dateStr.substring(6,8));
     24                 } else if( "YYYYMMDD HH:MI".equals(format)){
     25                     year =  Integer.valueOf(dateStr.substring(0,4));
     26                     month =  Integer.valueOf(dateStr.substring(4,6));
     27                     day =  Integer.valueOf(dateStr.substring(6,8));
     28                     hour =  Integer.valueOf(dateStr.substring(9,11));
     29                     minute =  Integer.valueOf(dateStr.substring(12,14));
     30                 } else if( "YYYYMMDD HH:MI:SS".equals(format)){
     31                     year =  Integer.valueOf(dateStr.substring(0,4));
     32                     month =  Integer.valueOf(dateStr.substring(4,6));
     33                     day =  Integer.valueOf(dateStr.substring(6,8));
     34                     hour =  Integer.valueOf(dateStr.substring(9,11));
     35                     minute =  Integer.valueOf(dateStr.substring(12,14));
     36                     second =  Integer.valueOf(dateStr.substring(15,17));
     37                 } else if( "YYYY-MM".equals(format)){
     38                     if(! _checkSpecial(dateStr,4,"-")) return false;
     39                     year =  Integer.valueOf(dateStr.substring(0,4));
     40                     month =  Integer.valueOf(dateStr.substring(5,7));
     41                 } else if( "YYYY-MM-DD".equals(format)){
     42                     if(! _checkSpecial(dateStr,4,"-")) return false;
     43                     if(! _checkSpecial(dateStr,7,"-")) return false;
     44                     year =  Integer.valueOf(dateStr.substring(0,4));
     45                     month =  Integer.valueOf(dateStr.substring(5,7));
     46                     day =  Integer.valueOf(dateStr.substring(8,10));          
     47                 } else if( "YYYY-MM-DD HH:MI:SS".equals(format)){
     48                     if(! _checkSpecial(dateStr,4,"-")) return false;
     49                     if(! _checkSpecial(dateStr,7,"-")) return false;
     50                     year =  Integer.valueOf(dateStr.substring(0,4));
     51                     month =  Integer.valueOf(dateStr.substring(5,7));
     52                     day =  Integer.valueOf(dateStr.substring(8,10));
     53                     hour =  Integer.valueOf(dateStr.substring(11,13));
     54                     minute =  Integer.valueOf(dateStr.substring(14,16));
     55                     second =  Integer.valueOf(dateStr.substring(17,19));
     56                 } else if( "YYYYMMDDHHMISS".equals(format)){
     57                     year =  Integer.valueOf(dateStr.substring(0,4));
     58                     month =  Integer.valueOf(dateStr.substring(4,6));
     59                     day =  Integer.valueOf(dateStr.substring(6,8));
     60                     hour =  Integer.valueOf(dateStr.substring(8,10));
     61                     minute =  Integer.valueOf(dateStr.substring(10,12));
     62                     second =  Integer.valueOf(dateStr.substring(12,14));
     63                 } else{
     64                     //alert(objName+"中定义的时间格式还不能处理!");
     65                     return false;
     66                 }
     67            
     68                  //check year
     69                  if(year != null){
     70                    if(year<1900 || year>2200){
     71                            //alert(objName+" 年份 应介于1900与2200之间,请重新输入!");
     72                            return false;
     73                    }
     74                    
     75                 }
     76                  //check month
     77                  if(month != null){
     78                    if(month<1 || month >12){
     79                            //alert(objName+" 月份 应介于1与12之间,请重新输入!");
     80                            return false;
     81                    }     
     82                 }
     83                  //check day
     84                  if(day != null){
     85                    if((day==0)||(day>31)){
     86                            //alert(objName+" 日 必须介于1与31之间!");
     87                            return false;
     88                     }
     89                     else if(day>28 && day<31){
     90                            if(month==2){
     91                                            if(day!=29){
     92                                                    //alert(objName+year+"年"+month+"月无"+day+"日。");
     93                                                    return false;
     94                                            }
     95                                            else {
     96                                                    if((year%4)!=0){
     97                                                            //alert(objName+year+"年"+month+"月无"+day+"日。");
     98                                                            return false ;
     99                                                     }
    100                                                     else {
    101                                                            if((year%100==0)&&(year%400!=0)){
    102                                                                   //alert(objName+year+"年"+month+"月无"+day+"日。");
    103                                                                   return false ;
    104                                                            }
    105                                                     }
    106                                            }
    107                                    }
    108                            }
    109 
    110                            else if(day==31){
    111                                    if((month==2)||(month==4)||(month==6)||(month==9)||(month==11)){
    112                                            //alert(objName+month+"月无"+day+"日");
    113                                            return false;
    114                                    }
    115                            }    
    116                 }
    117                  //check hour
    118                  if(hour != null){
    119                    if(hour<0 || hour >23){
    120                            //alert(objName+"小时应介于0与23之间,请重新输入!");
    121                            return false;
    122                    }     
    123                 }
    124                  //check minute
    125                  if(minute != null){
    126                    if(minute<0 || minute >59){
    127                            //alert(objName+"小时应介于0与59之间,请重新输入!");
    128                            return false;
    129                    }    
    130                 }
    131                  //check second
    132                  if(second != null){
    133                    if(second<0 || second >59){
    134                            //alert(objName+"秒应介于0与59之间,请重新输入!");
    135                            return false;
    136                    }     
    137                 }    
    138                  return true;    
    139      }
    140      
    141      private static  boolean _checkSpecial(String str, int pos,String identifier){
    142             if(str.substring(pos,pos+1).equals(identifier)) return true ;
    143             return false;
    144      }
  • 相关阅读:
    linux上部署javaWeb项目
    Android 调试native的crash和anr
    你怎么知道你的网站K
    Win 10开门人类智慧的世界领先
    Preference如何增加在activity生命周期监听器
    智能指针模板,要管理动态分配的内存
    两分钟找到一些注意事项
    javascript---在自由落体实现
    URAL 1934 Black Spot --- 最短的简单修改
    最简单的ADABOOST人脸检测程序。COPY执行,前提是你配置OpenCV周围环境
  • 原文地址:https://www.cnblogs.com/live365wang/p/2939996.html
Copyright © 2011-2022 走看看