DateFormatter Class — netty Architecture
Architecture documentation for the DateFormatter class in DateFormatter.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 868307e6_8dd7_9eb3_bb13_ca685c4d59cf["DateFormatter"] 1c59d4b2_723c_1992_2d45_b7eb17387a30["DateFormatter.java"] 868307e6_8dd7_9eb3_bb13_ca685c4d59cf -->|defined in| 1c59d4b2_723c_1992_2d45_b7eb17387a30 c0c8c303_9c6b_ff59_6738_58d3bb356d4c["Date()"] 868307e6_8dd7_9eb3_bb13_ca685c4d59cf -->|method| c0c8c303_9c6b_ff59_6738_58d3bb356d4c 63f98582_6c33_610d_9c2a_2abb69d275c9["String()"] 868307e6_8dd7_9eb3_bb13_ca685c4d59cf -->|method| 63f98582_6c33_610d_9c2a_2abb69d275c9 d6cf78c7_2c75_11df_272a_e71eab6d3f0b["StringBuilder()"] 868307e6_8dd7_9eb3_bb13_ca685c4d59cf -->|method| d6cf78c7_2c75_11df_272a_e71eab6d3f0b b5129ed8_824e_d34a_52e5_2c3380366ab0["DateFormatter()"] 868307e6_8dd7_9eb3_bb13_ca685c4d59cf -->|method| b5129ed8_824e_d34a_52e5_2c3380366ab0 b615a2fa_ebeb_80fc_aed3_559016f59224["isDelim()"] 868307e6_8dd7_9eb3_bb13_ca685c4d59cf -->|method| b615a2fa_ebeb_80fc_aed3_559016f59224 f6218a9b_85e0_505c_17e2_64f08857d3eb["isDigit()"] 868307e6_8dd7_9eb3_bb13_ca685c4d59cf -->|method| f6218a9b_85e0_505c_17e2_64f08857d3eb c92994fa_0cd5_d7c9_02dd_596787c21993["getNumericalValue()"] 868307e6_8dd7_9eb3_bb13_ca685c4d59cf -->|method| c92994fa_0cd5_d7c9_02dd_596787c21993 afd84912_a53c_0efd_cf18_8b2ce4d9f206["reset()"] 868307e6_8dd7_9eb3_bb13_ca685c4d59cf -->|method| afd84912_a53c_0efd_cf18_8b2ce4d9f206 e7591c3e_834f_5798_5679_8e0c60fc675a["tryParseTime()"] 868307e6_8dd7_9eb3_bb13_ca685c4d59cf -->|method| e7591c3e_834f_5798_5679_8e0c60fc675a 19639dcb_526f_11c1_b138_20b90f6941ff["tryParseDayOfMonth()"] 868307e6_8dd7_9eb3_bb13_ca685c4d59cf -->|method| 19639dcb_526f_11c1_b138_20b90f6941ff 8401dd32_c928_b3aa_2347_021ceb7e4e79["tryParseMonth()"] 868307e6_8dd7_9eb3_bb13_ca685c4d59cf -->|method| 8401dd32_c928_b3aa_2347_021ceb7e4e79 666b38f7_c194_b05c_4873_e01012dd6749["tryParseYear()"] 868307e6_8dd7_9eb3_bb13_ca685c4d59cf -->|method| 666b38f7_c194_b05c_4873_e01012dd6749 ccbf0bfc_8853_892e_8582_30ad6041b06a["parseToken()"] 868307e6_8dd7_9eb3_bb13_ca685c4d59cf -->|method| ccbf0bfc_8853_892e_8582_30ad6041b06a
Relationship Graph
Source Code
codec-base/src/main/java/io/netty/handler/codec/DateFormatter.java lines 48–448
public final class DateFormatter {
private static final BitSet DELIMITERS = new BitSet();
static {
DELIMITERS.set(0x09);
for (char c = 0x20; c <= 0x2F; c++) {
DELIMITERS.set(c);
}
for (char c = 0x3B; c <= 0x40; c++) {
DELIMITERS.set(c);
}
for (char c = 0x5B; c <= 0x60; c++) {
DELIMITERS.set(c);
}
for (char c = 0x7B; c <= 0x7E; c++) {
DELIMITERS.set(c);
}
}
private static final String[] DAY_OF_WEEK_TO_SHORT_NAME =
new String[]{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
private static final String[] CALENDAR_MONTH_TO_SHORT_NAME =
new String[]{"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
private static final FastThreadLocal<DateFormatter> INSTANCES =
new FastThreadLocal<DateFormatter>() {
@Override
protected DateFormatter initialValue() {
return new DateFormatter();
}
};
/**
* Parse some text into a {@link Date}, according to RFC6265
* @param txt text to parse
* @return a {@link Date}, or null if text couldn't be parsed
*/
public static Date parseHttpDate(CharSequence txt) {
return parseHttpDate(txt, 0, txt.length());
}
/**
* Parse some text into a {@link Date}, according to RFC6265
* @param txt text to parse
* @param start the start index inside {@code txt}
* @param end the end index inside {@code txt}
* @return a {@link Date}, or null if text couldn't be parsed
*/
public static Date parseHttpDate(CharSequence txt, int start, int end) {
int length = end - start;
if (length == 0) {
return null;
} else if (length < 0) {
throw new IllegalArgumentException("Can't have end < start");
} else if (length > 64) {
throw new IllegalArgumentException("Can't parse more than 64 chars, " +
"looks like a user error or a malformed header");
}
return formatter().parse0(checkNotNull(txt, "txt"), start, end);
}
/**
* Format a {@link Date} into RFC1123 format
* @param date the date to format
* @return a RFC1123 string
*/
public static String format(Date date) {
return formatter().format0(checkNotNull(date, "date"));
}
/**
* Append a {@link Date} to a {@link StringBuilder} into RFC1123 format
* @param date the date to format
* @param sb the StringBuilder
* @return the same StringBuilder
*/
public static StringBuilder append(Date date, StringBuilder sb) {
return formatter().append0(checkNotNull(date, "date"), checkNotNull(sb, "sb"));
}
Source
Frequently Asked Questions
What is the DateFormatter class?
DateFormatter is a class in the netty codebase, defined in codec-base/src/main/java/io/netty/handler/codec/DateFormatter.java.
Where is DateFormatter defined?
DateFormatter is defined in codec-base/src/main/java/io/netty/handler/codec/DateFormatter.java at line 48.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free