1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.beanutils.converters;
18
19 import java.sql.Timestamp;
20 import java.text.DateFormat;
21 import java.util.Locale;
22 import java.util.TimeZone;
23
24 /***
25 * {@link DateTimeConverter} implementation that handles conversion to
26 * and from <b>java.sql.Timestamp</b> objects.
27 * <p>
28 * This implementation can be configured to handle conversion either
29 * by using java.sql.Timestamp's default String conversion, or by using a
30 * Locale's default format or by specifying a set of format patterns.
31 * See the {@link DateTimeConverter} documentation for further details.
32 * <p>
33 * Can be configured to either return a <i>default value</i> or throw a
34 * <code>ConversionException</code> if a conversion error occurs.
35 *
36 * @author Craig R. McClanahan
37 * @version $Revision: 471352 $ $Date: 2006-11-05 03:34:09 +0000 (Sun, 05 Nov 2006) $
38 * @since 1.3
39 */
40 public final class SqlTimestampConverter extends DateTimeConverter {
41
42 /***
43 * Construct a <b>java.sql.Timestamp</b> <i>Converter</i> that throws
44 * a <code>ConversionException</code> if an error occurs.
45 */
46 public SqlTimestampConverter() {
47 super(Timestamp.class);
48 }
49
50 /***
51 * Construct a <b>java.sql.Timestamp</b> <i>Converter</i> that returns
52 * a default value if an error occurs.
53 *
54 * @param defaultValue The default value to be returned
55 * if the value to be converted is missing or an error
56 * occurs converting the value.
57 */
58 public SqlTimestampConverter(Object defaultValue) {
59 super(Timestamp.class, defaultValue);
60 }
61
62 /***
63 * Return a <code>DateFormat<code> for the Locale.
64 * @param locale TODO
65 * @param timeZone TODO
66 *
67 * @return The DateFormat.
68 */
69 protected DateFormat getFormat(Locale locale, TimeZone timeZone) {
70 DateFormat format = null;
71 if (locale == null) {
72 format = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
73 } else {
74 format = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, locale);
75 }
76 if (timeZone != null) {
77 format.setTimeZone(timeZone);
78 }
79 return format;
80 }
81 }