Set timezone in IsoValue itself #106
This commit is contained in:
@@ -67,13 +67,7 @@ public class Date10ParseInfo extends DateTimeParseInfo {
|
||||
cal.set(Calendar.SECOND, ((buf[pos + 8] - 48) * 10) + buf[pos + 9] - 48);
|
||||
}
|
||||
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);
|
||||
return createValue(cal, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -59,13 +59,7 @@ public class Date12ParseInfo extends DateTimeParseInfo {
|
||||
cal.set(Calendar.YEAR, 2000+year);
|
||||
}
|
||||
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);
|
||||
return createValue(cal, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -53,13 +53,7 @@ public class Date14ParseInfo extends DateTimeParseInfo {
|
||||
cal.set(Calendar.SECOND, ((buf[pos + 12] - 48) * 10) + buf[pos + 13] - 48);
|
||||
}
|
||||
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);
|
||||
return createValue(cal, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -62,13 +62,7 @@ public class Date4ParseInfo extends DateTimeParseInfo {
|
||||
cal.set(Calendar.MONTH, ((buf[pos] - 48) * 10) + buf[pos + 1] - 49);
|
||||
cal.set(Calendar.DATE, ((buf[pos + 2] - 48) * 10) + buf[pos + 3] - 48);
|
||||
}
|
||||
if (tz != null) {
|
||||
cal.setTimeZone(tz);
|
||||
} else if (getDefaultTimeZone() != null) {
|
||||
cal.setTimeZone(getDefaultTimeZone());
|
||||
}
|
||||
Date10ParseInfo.adjustWithFutureTolerance(cal);
|
||||
return new IsoValue<>(type, cal.getTime(), null);
|
||||
return createValue(cal, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -64,12 +64,7 @@ public class DateExpParseInfo extends DateTimeParseInfo {
|
||||
+ ((buf[pos] - 48) * 10) + buf[pos + 1] - 48);
|
||||
cal.set(Calendar.MONTH, ((buf[pos + 2] - 48) * 10) + buf[pos + 3] - 49);
|
||||
}
|
||||
if (tz != null) {
|
||||
cal.setTimeZone(tz);
|
||||
} else if (getDefaultTimeZone() != null) {
|
||||
cal.setTimeZone(getDefaultTimeZone());
|
||||
}
|
||||
return new IsoValue<>(type, cal.getTime(), null);
|
||||
return createValue(cal, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
package com.solab.iso8583.parse;
|
||||
|
||||
import com.solab.iso8583.IsoType;
|
||||
import com.solab.iso8583.IsoValue;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.TimeZone;
|
||||
|
||||
/**
|
||||
@@ -48,4 +50,21 @@ public abstract class DateTimeParseInfo extends FieldParseInfo {
|
||||
}
|
||||
}
|
||||
|
||||
protected IsoValue<Date> createValue(Calendar cal, boolean adjusting) {
|
||||
if (tz != null) {
|
||||
cal.setTimeZone(tz);
|
||||
} else if (getDefaultTimeZone() != null) {
|
||||
cal.setTimeZone(getDefaultTimeZone());
|
||||
}
|
||||
if (adjusting) {
|
||||
adjustWithFutureTolerance(cal);
|
||||
}
|
||||
IsoValue<Date> v = new IsoValue<>(type, cal.getTime(), null);
|
||||
if (tz != null) {
|
||||
v.setTimeZone(tz);
|
||||
} else if (getDefaultTimeZone() != null) {
|
||||
v.setTimeZone(getDefaultTimeZone());
|
||||
}
|
||||
return v;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,12 +59,7 @@ public class TimeParseInfo extends DateTimeParseInfo {
|
||||
cal.set(Calendar.MINUTE, ((buf[pos + 2] - 48) * 10) + buf[pos + 3] - 48);
|
||||
cal.set(Calendar.SECOND, ((buf[pos + 4] - 48) * 10) + buf[pos + 5] - 48);
|
||||
}
|
||||
if (tz != null) {
|
||||
cal.setTimeZone(tz);
|
||||
} else if (getDefaultTimeZone() != null) {
|
||||
cal.setTimeZone(getDefaultTimeZone());
|
||||
}
|
||||
return new IsoValue<>(type, cal.getTime(), null);
|
||||
return createValue(cal, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user