关于Java8当中String转换LocalData的问题

关于Java8当中String转换LocalData的问题


以前从1.4接触Java都用的是SimpleDataFormat来转换"yyyy-MM-dd" 来转换相应的格式,数据库也喜欢用慢慢的也成为了习惯,到了Java8 LocalData转换用的DateTimeFormatter 好像也没什么问题,但是在我使用

			DateTimeFormatter dateTimeFormatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
            LocalDate parse5 = LocalDate.parse("2018-2-9", dateTimeFormatter2);// 01:01:01
            System.out.println("parse5 ok " + parse5);

出现了报错
在这里插入图片描述
经过反复测试发下如下问题

		DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("y-L-d"); // HH:mm:ss
        LocalDate parse1 = LocalDate.parse("2018-02-09", dateTimeFormatter);// 01:01:01
        LocalDate parse2 = LocalDate.parse("2018-2-9", dateTimeFormatter);// 01:01:01
        LocalDate parse3 = LocalDate.parse("2018-2-09", dateTimeFormatter);// 01:01:01
        LocalDate parse4 = LocalDate.parse("2018-02-9", dateTimeFormatter);// 01:01:01

        System.out.println(parse1.format(dateTimeFormatter));
        System.out.println(parse2.format(dateTimeFormatter));
        System.out.println(parse3.format(dateTimeFormatter));
        System.out.println(parse4.format(dateTimeFormatter));
        DateTimeFormatter dateTimeFormatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        try {
            // HH:mm:ss
            LocalDate parse5 = LocalDate.parse("2018-02-09", dateTimeFormatter2);// 01:01:01
            System.out.println("parse5 ok " + parse5);
        } catch (Exception e) {
            System.out.println(e.getMessage());
            e.printStackTrace();
        }
        try {
            LocalDate parse6 = LocalDate.parse("2018-2-9", dateTimeFormatter2);// 01:01:01
            System.out.println("parse6 ok " + parse6);
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        try {
            LocalDate parse7 = LocalDate.parse("2018-2-09", dateTimeFormatter2);// 01:01:01
            System.out.println("parse7 ok " + parse7);
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        try {
            LocalDate parse8 = LocalDate.parse("2018-02-9", dateTimeFormatter2);// 01:01:01
            System.out.println("parse8 ok " + parse8);
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        System.out.println(format.parse("2018-02-09"));
        System.out.println(format.parse("2018-2-9"));
        System.out.println(format.parse("2018-2-09"));
        System.out.println(format.parse("2018-02-9"));
        

在这里插入图片描述

从上面可以发下MM是需要和数量对应的mmm可以对应英文月份的缩写y L d都是可以匹配多个的,以后使用新版本的就用“y-L-d"就好了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值