From 1c8487ace013ce301a4462c9493681cfede4b3bc Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Tue, 28 Feb 2017 19:22:52 +0100 Subject: [PATCH] fix on strange lih date format --- .../java/smash/appointment/parse/SubjectParser.java | 13 ++++++++++++- .../parse/LihControlMappingParserTest.java | 7 +++++-- 2 files changed, 17 insertions(+), 3 deletions(-) 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 cf2d904e..1d853565 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 8585f519..7fbb4383 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")); -- GitLab