java – 使用DateTimeFormatter解析没有月份的日期
发布时间:2020-12-14 23:32:42 所属栏目:Java 来源:网络整理
导读:我尝试用这种格式解析日期:ddYYYY.例如,我有字符串141968,我想知道那天= 14和年= 1968. 我想我必须直接使用DateTimeFormatter.parse(String)给出的TemporalAccessor,但是我找不到如何使用这个结果.在调试时我看到结果是java.time.Parsed,它不是公共的,但在
我尝试用这种格式解析日期:ddYYYY.例如,我有字符串141968,我想知道那天= 14和年= 1968.
我想我必须直接使用DateTimeFormatter.parse(String)给出的TemporalAccessor,但是我找不到如何使用这个结果.在调试时我看到结果是java.time.Parsed,它不是公共的,但在字段fieldValues中包含我想要的信息. 我该如何解析这种特殊格式? 谢谢. 解决方法
一种方法是默认缺少的月份字段:
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()); 另一种是查询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)); (注意使用“y”,而不是“Y”进行解析) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- java – 将此(在构造函数中)泄露给对象本身
- Java8使用lambda实现Java的尾递归
- java-ee – 如何在Action类中访问url参数Struts
- java – 将“Boolean”序列化为“1”和“0”而不
- java – AutoCompleteTextView强制显示所有项目
- java – JdbcTemplate queryForList返回值,如果没
- Java实现的3des加密解密工具类示例
- SpringMVC+Swagger详细整合
- springboot整合mybatis将sql打印到日志的实例详解
- Java 7 Try-With-Resources(AutoCloseable)实现
热点阅读