Package io.netty.handler.codec
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
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.GregorianCalendar
cal
private static java.lang.String[]
CALENDAR_MONTH_TO_SHORT_NAME
private static java.lang.String[]
DAY_OF_WEEK_TO_SHORT_NAME
private int
dayOfMonth
private boolean
dayOfMonthFound
private static java.util.BitSet
DELIMITERS
private int
hours
private static FastThreadLocal<DateFormatter>
INSTANCES
private int
minutes
private int
month
private boolean
monthFound
private java.lang.StringBuilder
sb
private int
seconds
private boolean
timeFound
private int
year
private boolean
yearFound
-
Constructor Summary
Constructors Modifier Constructor Description private
DateFormatter()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static java.lang.StringBuilder
append(java.util.Date date, java.lang.StringBuilder sb)
Append aDate
to aStringBuilder
into RFC1123 formatprivate java.lang.StringBuilder
append0(java.util.Date date, java.lang.StringBuilder sb)
private static java.lang.StringBuilder
appendZeroLeftPadded(int value, java.lang.StringBuilder sb)
private java.util.Date
computeDate()
static java.lang.String
format(java.util.Date date)
Format aDate
into RFC1123 formatprivate java.lang.String
format0(java.util.Date date)
private static DateFormatter
formatter()
private static int
getNumericalValue(char c)
private static boolean
isDelim(char c)
private static boolean
isDigit(char c)
private boolean
normalizeAndValidate()
private java.util.Date
parse0(java.lang.CharSequence txt, int start, int end)
private boolean
parse1(java.lang.CharSequence txt, int start, int end)
static java.util.Date
parseHttpDate(java.lang.CharSequence txt)
Parse some text into aDate
, according to RFC6265static java.util.Date
parseHttpDate(java.lang.CharSequence txt, int start, int end)
Parse some text into aDate
, according to RFC6265private boolean
parseToken(java.lang.CharSequence txt, int tokenStart, int tokenEnd)
void
reset()
private boolean
tryParseDayOfMonth(java.lang.CharSequence txt, int tokenStart, int tokenEnd)
private boolean
tryParseMonth(java.lang.CharSequence txt, int tokenStart, int tokenEnd)
private boolean
tryParseTime(java.lang.CharSequence txt, int tokenStart, int tokenEnd)
private boolean
tryParseYear(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 insidetxt
end
- 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 aDate
into 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 aDate
to aStringBuilder
into 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)
-
-