【发布时间】:2017-11-19 21:22:30
【问题描述】:
我正在尝试编写一个DateTimeFormatter,它允许我接受多种不同的String 格式,然后将String 格式转换为特定类型。由于项目的范围和已经存在的代码,我不能使用不同类型的格式化程序。
例如,我想接受MM/dd/yyyy 和yyyy-MM-dd'T'HH:mm:ss,但是当我打印时,我只想打印为MM/dd/yyyy 格式,并在我调用LocalDate.format(formatter); 时将其设置为格式
有人可以就如何使用java.time.format.*; 提出建议
这是我在org.joda 中的做法:
// MM/dd/yyyy format
DateTimeFormatter monthDayYear = DateTimeFormat.forPattern("MM/dd/yyyy");
// array of parsers, with all possible input patterns
DateTimeParser[] parsers = {
// parser for MM/dd/yyyy format
monthDayYear.getParser(),
// parser for yyyy-MM-dd'T'HH:mm:ss format
DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss").getParser()
};
DateTimeFormatter parser = new DateTimeFormatterBuilder()
// use the monthDayYear formatter for output (monthDayYear.getPrinter())
// and parsers array for input (parsers)
.append(monthDayYear.getPrinter(), parsers)
// create formatter (using UTC to avoid DST problems)
.toFormatter()
.withZone(DateTimeZone.UTC);
我没有在网上找到一个好的/有效的例子。
【问题讨论】:
标签: java datetime datetime-format java-time datetime-parsing