diff --git a/core/src/androidTest/java/de/danoeh/antennapod/core/tests/util/DateUtilsTest.java b/core/src/androidTest/java/de/danoeh/antennapod/core/tests/util/DateUtilsTest.java index 8adcc41c5..ee90d9116 100644 --- a/core/src/androidTest/java/de/danoeh/antennapod/core/tests/util/DateUtilsTest.java +++ b/core/src/androidTest/java/de/danoeh/antennapod/core/tests/util/DateUtilsTest.java @@ -130,4 +130,12 @@ public class DateUtilsTest extends AndroidTestCase { Date actual = DateUtils.parse("Thu, 8 Oct 2014 09:00:00 GMT"); // actually a Wednesday assertEquals(expected, actual); } + + public void testParseDateWithBadAbbreviation() { + GregorianCalendar exp1 = new GregorianCalendar(2014, 8, 8, 0, 0, 0); + exp1.setTimeZone(TimeZone.getTimeZone("GMT")); + Date expected = new Date(exp1.getTimeInMillis()); + Date actual = DateUtils.parse("Mon, 8 Sept 2014 00:00:00 GMT"); // should be Sep + assertEquals(expected, actual); + } } diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java b/core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java index f63f0983f..5056ea274 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java @@ -31,6 +31,9 @@ public class DateUtils { date = date.replaceAll("CEST$", "+02:00"); date = date.replaceAll("CET$", "+01:00"); + // some generators use "Sept" for September + date = date.replaceAll("\\bSept\\b", "Sep"); + // if datetime is more precise than seconds, make sure the value is in ms if (date.contains(".")) { int start = date.indexOf('.');