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 Summary
Fields 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 Summary
Constructors Constructor Description MailDateParser()
-
Method Summary
All 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_5322
public static final DateTimeFormatter RFC_5322
-
RFC_5322_LENIENT
public static final DateTimeFormatter RFC_5322_LENIENT
-
RFC_5322_AMPM_LENIENT
public static final DateTimeFormatter RFC_5322_AMPM_LENIENT
-
MMM_D_YYYY_HH_MM_AM_PM
public static final DateTimeFormatter MMM_D_YYYY_HH_MM_AM_PM
-
MMM_D_YYYY_HH_MM
public static final DateTimeFormatter MMM_D_YYYY_HH_MM
-
MM_SLASH_DD_SLASH_YY_HH_MM
public static final DateTimeFormatter MM_SLASH_DD_SLASH_YY_HH_MM
-
MM_SLASH_DD_SLASH_YY_HH_MM_AM_PM
public static final DateTimeFormatter MM_SLASH_DD_SLASH_YY_HH_MM_AM_PM
-
YYYY_MM_DD_HH_MM
public static final DateTimeFormatter YYYY_MM_DD_HH_MM
-
YYYY_MM_DD
public static final DateTimeFormatter YYYY_MM_DD
-
MM_SLASH_DD_SLASH_YYYY
public static final DateTimeFormatter MM_SLASH_DD_SLASH_YYYY
-
DD_SLASH_MM_SLASH_YYYY
public static final DateTimeFormatter DD_SLASH_MM_SLASH_YYYY
-
MMM_DD_YY
public static final DateTimeFormatter MMM_DD_YY
-
DD_MMM_YY
public static final DateTimeFormatter DD_MMM_YY
-
YY_SLASH_MM_SLASH_DD
public static final DateTimeFormatter YY_SLASH_MM_SLASH_DD
-
-
Method Detail
-
parseRFC5322
public static Date parseRFC5322(String string) throws ParseException
- Throws:
ParseException
-
-