1
2
3
4
5
6
7
8
9
10
11
12
13
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
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
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 }