From 2783dde094df17dd82633cfbdd1c42953dff2c54 Mon Sep 17 00:00:00 2001 From: Enrique Zamudio Date: Tue, 17 Apr 2018 12:29:26 -0500 Subject: [PATCH] set timezone when auto-assigning date #106 --- .../java/com/solab/iso8583/MessageFactory.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/solab/iso8583/MessageFactory.java b/src/main/java/com/solab/iso8583/MessageFactory.java index 24f3122..9411900 100644 --- a/src/main/java/com/solab/iso8583/MessageFactory.java +++ b/src/main/java/com/solab/iso8583/MessageFactory.java @@ -240,9 +240,18 @@ public class MessageFactory { if (traceGen != null) { m.setValue(11, traceGen.nextTrace(), IsoType.NUMERIC, 6); } - if (setDate) { - m.setValue(7, new Date(), IsoType.DATE10, 10); - } + if (setDate) { + if (m.hasField(7)) { + //We may have a field with a timezone but no value + m.updateValue(7, new Date()); + } else { + IsoValue now = new IsoValue<>(IsoType.DATE10, new Date()); + if (DateTimeParseInfo.getDefaultTimeZone() != null) { + now.setTimeZone(DateTimeParseInfo.getDefaultTimeZone()); + } + m.setField(7, now); + } + } return m; }