001 /** 002 * Copyright 2010 The Kuali Foundation Licensed under the 003 * Educational Community License, Version 2.0 (the "License"); you may 004 * not use this file except in compliance with the License. You may 005 * obtain a copy of the License at 006 * 007 * http://www.osedu.org/licenses/ECL-2.0 008 * 009 * Unless required by applicable law or agreed to in writing, 010 * software distributed under the License is distributed on an "AS IS" 011 * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 012 * or implied. See the License for the specific language governing 013 * permissions and limitations under the License. 014 */ 015 016 package org.kuali.student.common.validator; 017 018 import java.text.SimpleDateFormat; 019 import java.util.Date; 020 021 public class ServerDateParser implements DateParser { 022 SimpleDateFormat[] formats = { 023 new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"), 024 new SimpleDateFormat("yyyy-MM-dd"), 025 new SimpleDateFormat("yyyy-MMM-dd"), 026 new SimpleDateFormat("dd-MM-yyyy"), 027 new SimpleDateFormat("dd-MMM-yyyy") 028 }; 029 030 public Date parseDate(String input) { 031 Date result = null; 032 033 for (SimpleDateFormat format : formats) { 034 try { 035 result = format.parse(input); 036 } catch (Exception e) { 037 // just eat it 038 } 039 if (result != null) { 040 break; 041 } 042 043 } 044 045 if (result == null) { 046 throw new DateParseException("Invalid date value: " + input); 047 } 048 049 return result; 050 } 051 052 /** 053 * @see org.kuali.student.common.validator.old.DateParser#toString(java.util.Date) 054 */ 055 @Override 056 public String toString(Date date) { 057 String result = null; 058 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-ddTHH:mm:ss,SSS"); 059 result = format.format(date); 060 061 return result; 062 } 063 }