99
1010import java .lang .reflect .Constructor ;
1111import java .lang .reflect .InvocationTargetException ;
12+ import java .sql .Time ;
1213import java .sql .Timestamp ;
1314import java .text .ParseException ;
1415import java .text .SimpleDateFormat ;
@@ -253,6 +254,8 @@ public AbstractElement toAbstract(MapperContext context, Object value) throws Ma
253254 return new AbstractPrimitive (time );
254255 }
255256 java .text .DateFormat dateFormat = (df != null && df .value ().length () > 0 ) ? new SimpleDateFormat (df .value ()) : context .getMapper ().getDateFormat ();
257+ if (df != null && df .timezone ().length () > 0 )
258+ dateFormat .setTimeZone (TimeZone .getTimeZone (df .timezone ()));
256259 return new AbstractPrimitive (dateFormat .format ((Date ) value ));
257260 }
258261 return null ;
@@ -269,6 +272,8 @@ public Object fromAbstract(MapperContext context, AbstractElement element, Class
269272 date = new Date (time );
270273 } else {
271274 java .text .DateFormat dateFormat = (df != null && df .value ().length () > 0 ) ? new SimpleDateFormat (df .value ()) : context .getMapper ().getDateFormat ();
275+ if (df != null && df .timezone ().length () > 0 )
276+ dateFormat .setTimeZone (TimeZone .getTimeZone (df .timezone ()));
272277 date = dateFormat .parse (element .string (context .getMapper ().isStrict ()));
273278 }
274279 if (type .equals (Date .class ))
@@ -367,7 +372,7 @@ public Object fromAbstract(MapperContext context, AbstractElement element, Class
367372 try {
368373 return Enum .valueOf (type , element .string ());
369374 } catch (IllegalArgumentException ex ) {
370- throw new MapperException ("There is no enum constant '" + element .string () + "'" );
375+ throw new MapperException ("There is no enum constant '" + element .string () + "' in '" + type . getName () + "' " );
371376 }
372377 }
373378 if (type .equals (UUID .class ))
0 commit comments