Skip to content

Commit a3a6f1d

Browse files
committed
Merge remote-tracking branch 'origin/dev' into dev
2 parents 939e39c + c42c60d commit a3a6f1d

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

src/main/java/org/javawebstack/abstractdata/mapper/DefaultMappers.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
import java.lang.reflect.Constructor;
1111
import java.lang.reflect.InvocationTargetException;
12+
import java.sql.Time;
1213
import java.sql.Timestamp;
1314
import java.text.ParseException;
1415
import 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))

src/main/java/org/javawebstack/abstractdata/mapper/annotation/DateFormat.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
public @interface DateFormat {
44

55
String value() default "";
6+
String timezone() default "";
67
boolean epoch() default false;
78
boolean millis() default false;
89

0 commit comments

Comments
 (0)