diff --git a/appointment-import/src/main/java/smash/appointment/parse/SubjectParser.java b/appointment-import/src/main/java/smash/appointment/parse/SubjectParser.java index cf2d904e2dff7bd2103c5a15eb0ce459f04973f5..1d853565117a7fda3864588c6245b722da3284dd 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/SubjectParser.java +++ b/appointment-import/src/main/java/smash/appointment/parse/SubjectParser.java @@ -193,11 +193,15 @@ public abstract class SubjectParser { if (result == null || result.trim().isEmpty()) { result = defaultDateString; } - result = fixDate(result); + result = fixDate(result, defaultDateString); return result; } protected String fixDate(String result) { + return fixDate(result, null); + } + + protected String fixDate(String result, String defaultDateString) { result = result.replaceAll("\\?", ""); result = result.replaceAll("jan", "01"); result = result.replaceAll("fev", "02"); @@ -212,6 +216,13 @@ public abstract class SubjectParser { String tmp[] = result.split("/"); result = tmp[2] + "-" + tmp[1] + "-" + tmp[0]; } + if (result.charAt(2) == '-') { + String tmp[] = result.split("-"); + result = tmp[2] + "-" + tmp[1] + "-" + tmp[0]; + } + if (result.length() < 10) { + result = defaultDateString; + } return result; } diff --git a/appointment-import/src/test/java/smash/appointment/parse/LihControlMappingParserTest.java b/appointment-import/src/test/java/smash/appointment/parse/LihControlMappingParserTest.java index 8585f519ea336ecf99fe2a086a753afc6c2739f4..7fbb4383a9c9128ffcda6949f7ae31f5ef7d463b 100644 --- a/appointment-import/src/test/java/smash/appointment/parse/LihControlMappingParserTest.java +++ b/appointment-import/src/test/java/smash/appointment/parse/LihControlMappingParserTest.java @@ -1,8 +1,10 @@ package smash.appointment.parse; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; import org.apache.log4j.Logger; @@ -65,7 +67,8 @@ public class LihControlMappingParserTest extends TestBase { @Test public void testFixDate() throws Exception { DATE_FORMATTER.parse(processor.fixDate("2016-cot-31")); - DATE_FORMATTER.parse(processor.fixDate("25-11-1951")); + Date d = DATE_FORMATTER.parse(processor.fixDate("25-11-1951")); + assertEquals("1951-11-25",DATE_FORMATTER.format(d)); DATE_FORMATTER.parse(processor.fixDate("1957??-10-25")); DATE_FORMATTER.parse(processor.fixDate("2016?-sep-12")); DATE_FORMATTER.parse(processor.fixDate("2016-aou-26"));