Class MailDateParser
- java.lang.Object
- 
- org.apache.tika.parser.mailcommons.MailDateParser
 
- 
 public class MailDateParser extends Object Dates in emails are a mess. There are at least two major date related bugs in JDK 8. And, I've found differing behavior, bug or not, between JDK 8 and JDK 11/17. This class does its best to parse date strings. It does have a US-based date bias. Please open a ticket to fix this as needed. We can also add overrides via the parser config to manage customization of date formats. This code does not spark joy especially given the diffs in behavior between jdk versions. At some point, we should probably try joda or, heaven forfend, a pile of regexes.
- 
- 
Field SummaryFields Modifier and Type Field Description static DateTimeFormatterDD_MMM_YYstatic DateTimeFormatterDD_SLASH_MM_SLASH_YYYYstatic DateTimeFormatterMM_SLASH_DD_SLASH_YY_HH_MMstatic DateTimeFormatterMM_SLASH_DD_SLASH_YY_HH_MM_AM_PMstatic DateTimeFormatterMM_SLASH_DD_SLASH_YYYYstatic DateTimeFormatterMMM_D_YYYY_HH_MMstatic DateTimeFormatterMMM_D_YYYY_HH_MM_AM_PMstatic DateTimeFormatterMMM_DD_YYstatic DateTimeFormatterRFC_5322static DateTimeFormatterRFC_5322_AMPM_LENIENTstatic DateTimeFormatterRFC_5322_LENIENTstatic DateTimeFormatterYY_SLASH_MM_SLASH_DDstatic DateTimeFormatterYYYY_MM_DDstatic DateTimeFormatterYYYY_MM_DD_HH_MM
 - 
Constructor SummaryConstructors Constructor Description MailDateParser()
 - 
Method SummaryAll Methods Static Methods Concrete Methods Modifier and Type Method Description protected static Stringnormalize(String text)static DateparseDateLenient(String text)static DateparseRFC5322(String string)
 
- 
- 
- 
Field Detail- 
RFC_5322public static final DateTimeFormatter RFC_5322 
 - 
RFC_5322_LENIENTpublic static final DateTimeFormatter RFC_5322_LENIENT 
 - 
RFC_5322_AMPM_LENIENTpublic static final DateTimeFormatter RFC_5322_AMPM_LENIENT 
 - 
MMM_D_YYYY_HH_MM_AM_PMpublic static final DateTimeFormatter MMM_D_YYYY_HH_MM_AM_PM 
 - 
MMM_D_YYYY_HH_MMpublic static final DateTimeFormatter MMM_D_YYYY_HH_MM 
 - 
MM_SLASH_DD_SLASH_YY_HH_MMpublic static final DateTimeFormatter MM_SLASH_DD_SLASH_YY_HH_MM 
 - 
MM_SLASH_DD_SLASH_YY_HH_MM_AM_PMpublic static final DateTimeFormatter MM_SLASH_DD_SLASH_YY_HH_MM_AM_PM 
 - 
YYYY_MM_DD_HH_MMpublic static final DateTimeFormatter YYYY_MM_DD_HH_MM 
 - 
YYYY_MM_DDpublic static final DateTimeFormatter YYYY_MM_DD 
 - 
MM_SLASH_DD_SLASH_YYYYpublic static final DateTimeFormatter MM_SLASH_DD_SLASH_YYYY 
 - 
DD_SLASH_MM_SLASH_YYYYpublic static final DateTimeFormatter DD_SLASH_MM_SLASH_YYYY 
 - 
MMM_DD_YYpublic static final DateTimeFormatter MMM_DD_YY 
 - 
DD_MMM_YYpublic static final DateTimeFormatter DD_MMM_YY 
 - 
YY_SLASH_MM_SLASH_DDpublic static final DateTimeFormatter YY_SLASH_MM_SLASH_DD 
 
- 
 - 
Method Detail- 
parseRFC5322public static Date parseRFC5322(String string) throws ParseException - Throws:
- ParseException
 
 
- 
 
-