default timezone to fix #107
This commit is contained in:
@@ -280,6 +280,9 @@ public class MessageFactory<T extends IsoMessage> {
|
||||
|
||||
/** Sets the timezone for the specified FieldParseInfo, if it's needed for parsing dates. */
|
||||
public void setTimezoneForParseGuide(int messageType, int field, TimeZone tz) {
|
||||
if (field == 0) {
|
||||
DateTimeParseInfo.setDefaultTimeZone(tz);
|
||||
}
|
||||
Map<Integer, FieldParseInfo> guide = parseMap.get(messageType);
|
||||
if (guide != null) {
|
||||
FieldParseInfo fpi = guide.get(field);
|
||||
|
||||
@@ -69,6 +69,8 @@ public class Date10ParseInfo extends DateTimeParseInfo {
|
||||
cal.set(Calendar.MILLISECOND,0);
|
||||
if (tz != null) {
|
||||
cal.setTimeZone(tz);
|
||||
} else if (getDefaultTimeZone() != null) {
|
||||
cal.setTimeZone(getDefaultTimeZone());
|
||||
}
|
||||
adjustWithFutureTolerance(cal);
|
||||
return new IsoValue<>(type, cal.getTime(), null);
|
||||
|
||||
@@ -61,6 +61,8 @@ public class Date12ParseInfo extends DateTimeParseInfo {
|
||||
cal.set(Calendar.MILLISECOND,0);
|
||||
if (tz != null) {
|
||||
cal.setTimeZone(tz);
|
||||
} else if (getDefaultTimeZone() != null) {
|
||||
cal.setTimeZone(getDefaultTimeZone());
|
||||
}
|
||||
adjustWithFutureTolerance(cal);
|
||||
return new IsoValue<>(type, cal.getTime(), null);
|
||||
|
||||
@@ -55,6 +55,8 @@ public class Date14ParseInfo extends DateTimeParseInfo {
|
||||
cal.set(Calendar.MILLISECOND,0);
|
||||
if (tz != null) {
|
||||
cal.setTimeZone(tz);
|
||||
} else if (getDefaultTimeZone() != null) {
|
||||
cal.setTimeZone(getDefaultTimeZone());
|
||||
}
|
||||
adjustWithFutureTolerance(cal);
|
||||
return new IsoValue<>(type, cal.getTime(), null);
|
||||
|
||||
@@ -64,6 +64,8 @@ public class Date4ParseInfo extends DateTimeParseInfo {
|
||||
}
|
||||
if (tz != null) {
|
||||
cal.setTimeZone(tz);
|
||||
} else if (getDefaultTimeZone() != null) {
|
||||
cal.setTimeZone(getDefaultTimeZone());
|
||||
}
|
||||
Date10ParseInfo.adjustWithFutureTolerance(cal);
|
||||
return new IsoValue<>(type, cal.getTime(), null);
|
||||
|
||||
@@ -66,6 +66,8 @@ public class DateExpParseInfo extends DateTimeParseInfo {
|
||||
}
|
||||
if (tz != null) {
|
||||
cal.setTimeZone(tz);
|
||||
} else if (getDefaultTimeZone() != null) {
|
||||
cal.setTimeZone(getDefaultTimeZone());
|
||||
}
|
||||
return new IsoValue<>(type, cal.getTime(), null);
|
||||
}
|
||||
|
||||
@@ -15,11 +15,19 @@ public abstract class DateTimeParseInfo extends FieldParseInfo {
|
||||
|
||||
protected static final long FUTURE_TOLERANCE;
|
||||
protected TimeZone tz;
|
||||
private static TimeZone defaultTimezone;
|
||||
|
||||
static {
|
||||
FUTURE_TOLERANCE = Long.parseLong(System.getProperty("j8583.future.tolerance", "900000"));
|
||||
}
|
||||
|
||||
public static void setDefaultTimeZone(TimeZone tz) {
|
||||
defaultTimezone = tz;
|
||||
}
|
||||
public static TimeZone getDefaultTimeZone() {
|
||||
return defaultTimezone;
|
||||
}
|
||||
|
||||
protected DateTimeParseInfo(IsoType type, int length) {
|
||||
super(type, length);
|
||||
}
|
||||
|
||||
@@ -61,8 +61,10 @@ public class TimeParseInfo extends DateTimeParseInfo {
|
||||
}
|
||||
if (tz != null) {
|
||||
cal.setTimeZone(tz);
|
||||
} else if (getDefaultTimeZone() != null) {
|
||||
cal.setTimeZone(getDefaultTimeZone());
|
||||
}
|
||||
return new IsoValue<Date>(type, cal.getTime(), null);
|
||||
return new IsoValue<>(type, cal.getTime(), null);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user