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     
23  	private static ThreadLocal<SimpleDateFormat[]> formats = new ThreadLocal<SimpleDateFormat[]>() {
24  
25  		protected SimpleDateFormat[] initialValue() {
26  			return new SimpleDateFormat[] {
27  		    		new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"), 
28  		    		new SimpleDateFormat("yyyy-MM-dd"), 
29  		    		new SimpleDateFormat("yyyy-MMM-dd"),
30  		    		new SimpleDateFormat("dd-MM-yyyy"),
31  		    		new SimpleDateFormat("dd-MMM-yyyy")
32  		    };
33  		}
34  
35  	};
36  	
37      
38      public Date parseDate(String input) {
39          Date result = null;
40          
41          for (SimpleDateFormat format : formats.get()) {
42                  try {
43                      result = format.parse(input);
44                  } catch (Exception e) {
45                      // just eat it
46                  }
47                  if (result != null) {
48                      break;
49                  }
50              
51          }
52          
53          if (result == null) {
54              throw new DateParseException("Invalid date value: " + input);
55          }
56          
57          return result;
58      }
59  
60      /**
61       * @see org.kuali.student.common.validator.old.DateParser#toString(java.util.Date)
62       */
63      @Override
64      public String toString(Date date) {
65          String result = null;
66          SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-ddTHH:mm:ss,SSS");
67          result = format.format(date);
68  
69          return result;        
70      }
71  }