Hap*_*ppy 6 java java-8 java-time
我尝试用这种格式解析日期:ddYYYY.例如,我有字符串141968,我想知道day = 14和year = 1968.
我想我必须直接使用一个TemporalAccessor给DateTimeFormatter.parse(String),但我找不到如何使用这个结果.在调试时我看到结果是一个java.time.Parsed不公开但包含我想要的字段的信息fieldValues.
我该如何解析这种特殊格式?
谢谢.
Jod*_*hen 15
一种方法是默认缺少的月份字段:
DateTimeFormatter f = new DateTimeFormatterBuilder()
.appendPattern("ddyyyy")
.parseDefaulting(MONTH_OF_YEAR, 1)
.toFormatter();
LocalDate date = LocalDate.parse("141968", f);
System.out.println(date.getDayOfMonth());
System.out.println(date.getYear());
Run Code Online (Sandbox Code Playgroud)
另一个是查询TemporalAccessor:
DateTimeFormatter f = DateTimeFormatter.ofPattern("ddyyyy");
TemporalAccessor parsed = f.parse("141968");
System.out.println(parsed.get(ChronoField.YEAR));
System.out.println(parsed.get(ChronoField.DAY_OF_MONTH));
Run Code Online (Sandbox Code Playgroud)
(注意使用"y",而不是"Y"进行解析)
| 归档时间: |
|
| 查看次数: |
3711 次 |
| 最近记录: |