JAMES-2045 DateTimeFieldImpl should assume 19xx century when date without century >= 70
diff --git a/dom/src/main/javacc/org/apache/james/mime4j/field/datetime/DateTimeParser.jj b/dom/src/main/javacc/org/apache/james/mime4j/field/datetime/DateTimeParser.jj
index 7b9b490..dc110ca 100644
--- a/dom/src/main/javacc/org/apache/james/mime4j/field/datetime/DateTimeParser.jj
+++ b/dom/src/main/javacc/org/apache/james/mime4j/field/datetime/DateTimeParser.jj
@@ -230,6 +230,10 @@
       String year = (String) t.image;

       if (year.length() == 2) 

       {

+        if (year.charAt(0) > '6')

+        {

+          return "19" + year;

+        }

         return "20" + year;

       }

       return year;

diff --git a/dom/src/test/java/org/apache/james/mime4j/field/DateTimeFieldImplTest.java b/dom/src/test/java/org/apache/james/mime4j/field/DateTimeFieldImplTest.java
index 0e13b2d..45bff87 100644
--- a/dom/src/test/java/org/apache/james/mime4j/field/DateTimeFieldImplTest.java
+++ b/dom/src/test/java/org/apache/james/mime4j/field/DateTimeFieldImplTest.java
@@ -60,6 +60,12 @@
     }
 
     @Test
+    public void parseShouldAddPreviousCenturyWhen2DigitsAndMoreThan70s() throws Exception {
+        DateTimeField field = parse("Date: Wed, 13 May 87 14:18:52Z");
+        assertEquals("Wed May 13 14:18:52 UTC 1987", field.getDate().toString());
+    }
+
+    @Test
     public void dayIsDependentFromTheDateNotFromTheGivenDay() throws Exception {
         DateTimeField field = parse("Date: Mon, 13 May 17 14:18:52Z");
         assertEquals("Sat May 13 14:18:52 UTC 2017", field.getDate().toString());
diff --git a/dom/src/test/java/org/apache/james/mime4j/field/datetime/DateTimeTest.java b/dom/src/test/java/org/apache/james/mime4j/field/datetime/DateTimeTest.java
index 685281b..02510ba 100644
--- a/dom/src/test/java/org/apache/james/mime4j/field/datetime/DateTimeTest.java
+++ b/dom/src/test/java/org/apache/james/mime4j/field/datetime/DateTimeTest.java
@@ -44,12 +44,12 @@
 
 
         ensureAllEqual(new String[]{
-                "Fri, 21 Nov 2097 09:55:06 -0600", // baseline
+                "Fri, 21 Nov 1997 09:55:06 -0600", // baseline
                 "Fri, 21 Nov 97 09:55:06 -0600",   // 2-digit year
-                "Fri, 21 Nov 197 09:55:06 -0600",  // 3-digit year
-                "Fri, 21 Nov 2097 10:55:06 -0500", // shift time zone
-                "Fri, 21 Nov 2097 19:25:06 +0330", // shift time zone
-                "21 Nov 2097 09:55:06 -0600"       // omit day of week
+                "Fri, 21 Nov 097 09:55:06 -0600",  // 3-digit year
+                "Fri, 21 Nov 1997 10:55:06 -0500", // shift time zone
+                "Fri, 21 Nov 1997 19:25:06 +0330", // shift time zone
+                "21 Nov 1997 09:55:06 -0600"       // omit day of week
         });
 
         ensureAllEqual(new String[]{