--- src/scratchpad/src/org/apache/poi/hsmf/datatypes/MessageSubmissionChunk.java (revision 1664584) +++ src/scratchpad/src/org/apache/poi/hsmf/datatypes/MessageSubmissionChunk.java (working copy) @@ -77,7 +77,10 @@ Matcher m = datePatern.matcher(dateS); if(m.matches()) { date = Calendar.getInstance(); - date.set(Calendar.YEAR, Integer.parseInt(m.group(1)) + 2000); + + int year = Integer.parseInt(m.group(1)); + date.set(Calendar.YEAR, year + (year < 80 ? 1900 : 2000)); + date.set(Calendar.MONTH, Integer.parseInt(m.group(2)) - 1); // Java is 0 based date.set(Calendar.DATE, Integer.parseInt(m.group(3))); date.set(Calendar.HOUR_OF_DAY, Integer.parseInt(m.group(4))); --- src/scratchpad/testcases/org/apache/poi/hsmf/AllHSMFTests.java (revision 1664584) +++ src/scratchpad/testcases/org/apache/poi/hsmf/AllHSMFTests.java (working copy) @@ -41,6 +41,8 @@ suite.addTestSuite(TestPOIFSChunkParser.class); + suite.addTestSuite(TestMessageSubmissionChunkY2KRead.class); + return suite; } }