Package io.netty.handler.codec
Class DateFormatter
- java.lang.Object
-
- io.netty.handler.codec.DateFormatter
-
public final class DateFormatter extends java.lang.ObjectA 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
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.GregorianCalendarcalprivate static java.lang.String[]CALENDAR_MONTH_TO_SHORT_NAMEprivate static java.lang.String[]DAY_OF_WEEK_TO_SHORT_NAMEprivate intdayOfMonthprivate booleandayOfMonthFoundprivate static java.util.BitSetDELIMITERSprivate inthoursprivate static FastThreadLocal<DateFormatter>INSTANCESprivate intminutesprivate intmonthprivate booleanmonthFoundprivate java.lang.StringBuildersbprivate intsecondsprivate booleantimeFoundprivate intyearprivate booleanyearFound
-
Constructor Summary
Constructors Modifier Constructor Description privateDateFormatter()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static 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.DatecomputeDate()static java.lang.Stringformat(java.util.Date date)Format aDateinto RFC1123 formatprivate java.lang.Stringformat0(java.util.Date date)private static DateFormatterformatter()private static intgetNumericalValue(char c)private static booleanisDelim(char c)private static booleanisDigit(char c)private booleannormalizeAndValidate()private 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)
-
-
-
Field Detail
-
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
private static final FastThreadLocal<DateFormatter> 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
-
-
Method Detail
-
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
private static DateFormatter 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)
-
-