import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.temporal.ChronoField;import static java.time.temporal.ChronoField.*;public class DataStyle {public static DateTimeFormatter DATE_SERIALIZATION = new DateTimeFormatterBuilder().appendValue(ChronoField.YEAR).optionalStart().appendLiteral('-').optionalEnd().optionalStart().appendLiteral('/').optionalEnd().appendValue(ChronoField.MONTH_OF_YEAR).optionalStart().appendLiteral('-').optionalEnd().optionalStart().appendLiteral('/').optionalEnd().appendValue(ChronoField.DAY_OF_MONTH).toFormatter();public static DateTimeFormatter TIME_SERIALIZATION = new DateTimeFormatterBuilder().appendValue(HOUR_OF_DAY, 2).appendLiteral(':').appendValue(MINUTE_OF_HOUR, 2).appendLiteral(':').appendValue(SECOND_OF_MINUTE, 2).optionalStart().appendFraction(NANO_OF_SECOND, 0, 9, true).optionalEnd().toFormatter();// 日期时间序列化 外部序列化为LocalDateTime 或LocalDate时使用public static DateTimeFormatter DATE_TIME_SERIALIZATION = new DateTimeFormatterBuilder().append(DATE_SERIALIZATION).optionalStart().appendLiteral(' ').optionalEnd().optionalStart().appendLiteral('T').optionalEnd().append(TIME_SERIALIZATION).toFormatter();// 日期转换为日期字符串, 不存在分隔符public static DateTimeFormatter DATE_NUMBER = new DateTimeFormatterBuilder().appendValue(ChronoField.YEAR).appendValue(ChronoField.MONTH_OF_YEAR, 2).appendValue(ChronoField.DAY_OF_MONTH, 2).toFormatter();// 时间转换为时间字符串, 不存在分隔符public static DateTimeFormatter TIME_NUMBER = new DateTimeFormatterBuilder().appendValue(HOUR_OF_DAY, 2).appendValue(MINUTE_OF_HOUR, 2).appendValue(SECOND_OF_MINUTE, 2).appendFraction(NANO_OF_SECOND, 0, 9, false).toFormatter();// 日期时间转换为日期时间字符串, 不存在分隔符public static DateTimeFormatter DATE_TIME_NUMBER = new DateTimeFormatterBuilder().append(DATE_NUMBER).append(TIME_NUMBER).toFormatter();public static DateTimeFormatter ISO_DATE = DateTimeFormatter.ISO_DATE;public static DateTimeFormatter ISO_TIME = DateTimeFormatter.ISO_TIME;public static DateTimeFormatter ISO_DATE_TIME = DateTimeFormatter.ISO_DATE_TIME;}