DateTimeFormatters Class — spring-boot Architecture
Architecture documentation for the DateTimeFormatters class in DateTimeFormatters.java from the spring-boot codebase.
Entity Profile
Source Code
core/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/format/DateTimeFormatters.java lines 33–115
public class DateTimeFormatters {
private @Nullable DateTimeFormatter dateFormatter;
private @Nullable String datePattern;
private @Nullable DateTimeFormatter timeFormatter;
private @Nullable DateTimeFormatter dateTimeFormatter;
/**
* Configures the date format using the given {@code pattern}.
* @param pattern the pattern for formatting dates
* @return {@code this} for chained method invocation
*/
public DateTimeFormatters dateFormat(@Nullable String pattern) {
if (isIso(pattern)) {
this.dateFormatter = DateTimeFormatter.ISO_LOCAL_DATE;
this.datePattern = "yyyy-MM-dd";
}
else {
this.dateFormatter = formatter(pattern);
this.datePattern = pattern;
}
return this;
}
/**
* Configures the time format using the given {@code pattern}.
* @param pattern the pattern for formatting times
* @return {@code this} for chained method invocation
*/
public DateTimeFormatters timeFormat(@Nullable String pattern) {
this.timeFormatter = isIso(pattern) ? DateTimeFormatter.ISO_LOCAL_TIME
: (isIsoOffset(pattern) ? DateTimeFormatter.ISO_OFFSET_TIME : formatter(pattern));
return this;
}
/**
* Configures the date-time format using the given {@code pattern}.
* @param pattern the pattern for formatting date-times
* @return {@code this} for chained method invocation
*/
public DateTimeFormatters dateTimeFormat(@Nullable String pattern) {
this.dateTimeFormatter = isIso(pattern) ? DateTimeFormatter.ISO_LOCAL_DATE_TIME
: (isIsoOffset(pattern) ? DateTimeFormatter.ISO_OFFSET_DATE_TIME : formatter(pattern));
return this;
}
@Nullable DateTimeFormatter getDateFormatter() {
return this.dateFormatter;
}
@Nullable String getDatePattern() {
return this.datePattern;
}
@Nullable DateTimeFormatter getTimeFormatter() {
return this.timeFormatter;
}
@Nullable DateTimeFormatter getDateTimeFormatter() {
return this.dateTimeFormatter;
}
boolean isCustomized() {
return this.dateFormatter != null || this.timeFormatter != null || this.dateTimeFormatter != null;
}
private static @Nullable DateTimeFormatter formatter(@Nullable String pattern) {
return StringUtils.hasText(pattern)
? DateTimeFormatter.ofPattern(pattern).withResolverStyle(ResolverStyle.SMART) : null;
}
private static boolean isIso(@Nullable String pattern) {
return "iso".equalsIgnoreCase(pattern);
}
private static boolean isIsoOffset(@Nullable String pattern) {
return "isooffset".equalsIgnoreCase(pattern) || "iso-offset".equalsIgnoreCase(pattern);
}
}
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free