Package io.netty.handler.codec
Class DateFormatter
java.lang.Object
io.netty.handler.codec.DateFormatter
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 GregorianCalendar
private static final String[]
private static final String[]
private int
private boolean
private static final BitSet
private int
private static final FastThreadLocal
<DateFormatter> private int
private int
private boolean
private final StringBuilder
private int
private boolean
private int
private boolean
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic StringBuilder
append
(Date date, StringBuilder sb) Append aDate
to aStringBuilder
into RFC1123 formatprivate StringBuilder
append0
(Date date, StringBuilder sb) private static StringBuilder
appendZeroLeftPadded
(int value, StringBuilder sb) private Date
static String
Format aDate
into RFC1123 formatprivate String
private static DateFormatter
private static int
getNumericalValue
(char c) private static boolean
isDelim
(char c) private static boolean
isDigit
(char c) private boolean
private Date
parse0
(CharSequence txt, int start, int end) private boolean
parse1
(CharSequence txt, int start, int end) static Date
Parse some text into aDate
, according to RFC6265static Date
parseHttpDate
(CharSequence txt, int start, int end) Parse some text into aDate
, according to RFC6265private boolean
parseToken
(CharSequence txt, int tokenStart, int tokenEnd) void
reset()
private boolean
tryParseDayOfMonth
(CharSequence txt, int tokenStart, int tokenEnd) private boolean
tryParseMonth
(CharSequence txt, int tokenStart, int tokenEnd) private boolean
tryParseTime
(CharSequence txt, int tokenStart, int tokenEnd) private boolean
tryParseYear
(CharSequence txt, int tokenStart, int tokenEnd)
-
Field Details
-
DELIMITERS
-
DAY_OF_WEEK_TO_SHORT_NAME
-
CALENDAR_MONTH_TO_SHORT_NAME
-
INSTANCES
-
cal
-
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
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
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
Format aDate
into RFC1123 format- Parameters:
date
- the date to format- Returns:
- a RFC1123 string
-
append
Append aDate
to aStringBuilder
into 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
-
tryParseDayOfMonth
-
tryParseMonth
-
tryParseYear
-
parseToken
-
parse0
-
parse1
-
normalizeAndValidate
private boolean normalizeAndValidate() -
computeDate
-
format0
-
append0
-
appendZeroLeftPadded
-