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 DateTimeFormatter
DD_MMM_YY
static DateTimeFormatter
DD_SLASH_MM_SLASH_YYYY
static DateTimeFormatter
MM_SLASH_DD_SLASH_YY_HH_MM
static DateTimeFormatter
MM_SLASH_DD_SLASH_YY_HH_MM_AM_PM
static DateTimeFormatter
MM_SLASH_DD_SLASH_YYYY
static DateTimeFormatter
MMM_D_YYYY_HH_MM
static DateTimeFormatter
MMM_D_YYYY_HH_MM_AM_PM
static DateTimeFormatter
MMM_DD_YY
static DateTimeFormatter
RFC_5322
static DateTimeFormatter
RFC_5322_AMPM_LENIENT
static DateTimeFormatter
RFC_5322_LENIENT
static DateTimeFormatter
YY_SLASH_MM_SLASH_DD
static DateTimeFormatter
YYYY_MM_DD
static DateTimeFormatter
YYYY_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 String
normalize(String text)
static Date
parseDateLenient(String text)
static Date
parseRFC5322(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
-
-