View Javadoc

1   /**
2    * Copyright 2010 The Kuali Foundation Licensed under the
3    * Educational Community License, Version 2.0 (the "License"); you may
4    * not use this file except in compliance with the License. You may
5    * obtain a copy of the License at
6    *
7    * http://www.osedu.org/licenses/ECL-2.0
8    *
9    * Unless required by applicable law or agreed to in writing,
10   * software distributed under the License is distributed on an "AS IS"
11   * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12   * or implied. See the License for the specific language governing
13   * permissions and limitations under the License.
14   */
15  
16  package org.kuali.student.common.validator;
17  
18  import java.text.SimpleDateFormat;
19  import java.util.Date;
20  
21  public class ServerDateParser implements DateParser {
22      SimpleDateFormat[] formats = {
23      		new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"), 
24      		new SimpleDateFormat("yyyy-MM-dd"), 
25      		new SimpleDateFormat("yyyy-MMM-dd"),
26      		new SimpleDateFormat("dd-MM-yyyy"),
27      		new SimpleDateFormat("dd-MMM-yyyy")
28      };
29      
30      public Date parseDate(String input) {
31          Date result = null;
32          
33          for (SimpleDateFormat format : formats) {
34                  try {
35                      result = format.parse(input);
36                  } catch (Exception e) {
37                      // just eat it
38                  }
39                  if (result != null) {
40                      break;
41                  }
42              
43          }
44          
45          if (result == null) {
46              throw new DateParseException("Invalid date value: " + input);
47          }
48          
49          return result;
50      }
51  
52      /**
53       * @see org.kuali.student.common.validator.old.DateParser#toString(java.util.Date)
54       */
55      @Override
56      public String toString(Date date) {
57          String result = null;
58          SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-ddTHH:mm:ss,SSS");
59          result = format.format(date);
60  
61          return result;        
62      }
63  }