Class DateFormatter
java.lang.Object
io.netty.handler.codec.DateFormatter
public final class DateFormatter
extends java.lang.Object
A formatter for HTTP header dates, such as "Expires" and "Date" headers, or "expires" field in "Set-Cookie".
On the parsing side, it honors RFC6265 (so it supports RFC1123).
Note that:
- Day of week is ignored and not validated
- Timezone is ignored, as RFC6265 assumes UTC
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final java.util.GregorianCalendarprivate static final java.lang.String[]private static final java.lang.String[]private intprivate booleanprivate static final java.util.BitSetprivate intprivate static final FastThreadLocal<DateFormatter> private intprivate intprivate booleanprivate final java.lang.StringBuilderprivate intprivate booleanprivate intprivate boolean -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic java.lang.StringBuilderappend(java.util.Date date, java.lang.StringBuilder sb) Append aDateto aStringBuilderinto RFC1123 formatprivate java.lang.StringBuilderappend0(java.util.Date date, java.lang.StringBuilder sb) private static java.lang.StringBuilderappendZeroLeftPadded(int value, java.lang.StringBuilder sb) private java.util.Datestatic java.lang.Stringformat(java.util.Date date) Format aDateinto RFC1123 formatprivate java.lang.Stringformat0(java.util.Date date) private static DateFormatterprivate static intgetNumericalValue(char c) private static booleanisDelim(char c) private static booleanisDigit(char c) private booleanprivate java.util.Dateparse0(java.lang.CharSequence txt, int start, int end) private booleanparse1(java.lang.CharSequence txt, int start, int end) static java.util.DateparseHttpDate(java.lang.CharSequence txt) Parse some text into aDate, according to RFC6265static java.util.DateparseHttpDate(java.lang.CharSequence txt, int start, int end) Parse some text into aDate, according to RFC6265private booleanparseToken(java.lang.CharSequence txt, int tokenStart, int tokenEnd) voidreset()private booleantryParseDayOfMonth(java.lang.CharSequence txt, int tokenStart, int tokenEnd) private booleantryParseMonth(java.lang.CharSequence txt, int tokenStart, int tokenEnd) private booleantryParseTime(java.lang.CharSequence txt, int tokenStart, int tokenEnd) private booleantryParseYear(java.lang.CharSequence txt, int tokenStart, int tokenEnd) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
DELIMITERS
private static final java.util.BitSet DELIMITERS -
DAY_OF_WEEK_TO_SHORT_NAME
private static final java.lang.String[] DAY_OF_WEEK_TO_SHORT_NAME -
CALENDAR_MONTH_TO_SHORT_NAME
private static final java.lang.String[] CALENDAR_MONTH_TO_SHORT_NAME -
INSTANCES
-
cal
private final java.util.GregorianCalendar cal -
sb
private final java.lang.StringBuilder sb -
timeFound
private boolean timeFound -
hours
private int hours -
minutes
private int minutes -
seconds
private int seconds -
dayOfMonthFound
private boolean dayOfMonthFound -
dayOfMonth
private int dayOfMonth -
monthFound
private boolean monthFound -
month
private int month -
yearFound
private boolean yearFound -
year
private int year
-
-
Constructor Details
-
DateFormatter
private DateFormatter()
-
-
Method Details
-
parseHttpDate
public static java.util.Date parseHttpDate(java.lang.CharSequence txt) Parse some text into aDate, according to RFC6265- Parameters:
txt- text to parse- Returns:
- a
Date, or null if text couldn't be parsed
-
parseHttpDate
public static java.util.Date parseHttpDate(java.lang.CharSequence txt, int start, int end) Parse some text into aDate, according to RFC6265- Parameters:
txt- text to parsestart- the start index insidetxtend- the end index insidetxt- Returns:
- a
Date, or null if text couldn't be parsed
-
format
public static java.lang.String format(java.util.Date date) Format aDateinto RFC1123 format- Parameters:
date- the date to format- Returns:
- a RFC1123 string
-
append
public static java.lang.StringBuilder append(java.util.Date date, java.lang.StringBuilder sb) Append aDateto aStringBuilderinto RFC1123 format- Parameters:
date- the date to formatsb- the StringBuilder- Returns:
- the same StringBuilder
-
formatter
-
isDelim
private static boolean isDelim(char c) -
isDigit
private static boolean isDigit(char c) -
getNumericalValue
private static int getNumericalValue(char c) -
reset
public void reset() -
tryParseTime
private boolean tryParseTime(java.lang.CharSequence txt, int tokenStart, int tokenEnd) -
tryParseDayOfMonth
private boolean tryParseDayOfMonth(java.lang.CharSequence txt, int tokenStart, int tokenEnd) -
tryParseMonth
private boolean tryParseMonth(java.lang.CharSequence txt, int tokenStart, int tokenEnd) -
tryParseYear
private boolean tryParseYear(java.lang.CharSequence txt, int tokenStart, int tokenEnd) -
parseToken
private boolean parseToken(java.lang.CharSequence txt, int tokenStart, int tokenEnd) -
parse0
private java.util.Date parse0(java.lang.CharSequence txt, int start, int end) -
parse1
private boolean parse1(java.lang.CharSequence txt, int start, int end) -
normalizeAndValidate
private boolean normalizeAndValidate() -
computeDate
private java.util.Date computeDate() -
format0
private java.lang.String format0(java.util.Date date) -
append0
private java.lang.StringBuilder append0(java.util.Date date, java.lang.StringBuilder sb) -
appendZeroLeftPadded
private static java.lang.StringBuilder appendZeroLeftPadded(int value, java.lang.StringBuilder sb)
-