java.text.ParseException: Unparseable date: “2022-05-20“

项目场景:

`Java中将字符串 年月日 时分秒 转为Date日期出错

问题描述

java.text.ParseException: Unparseable date: “2022-05-20”

String dateString = “2022-05-20 15:30:00”;
用SimpleDateFormat 已写好的字符串日期转换Data没问题
但从键盘接受字符串再转日期就报错
在这里插入图片描述

public static void main(String[] args) {
		

		        Scanner scanner = new Scanner(System.in);
		        System.out.println("请输入日期");
		        String dateString = scanner.next();
		        //String dateString = "2022-05-20 15:30:00";
		        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		        try {
		            Date date = dateFormat.parse(dateString);
		            System.out.println(date);
		        } catch (ParseException e) {
		            e.printStackTrace();
		        }
		    
		}

原因分析:

用scanner.next()输入日期2022-05-20 15:30:00
有空格无法转换


解决方案:

1.SimpleDateFormat dateFormat = new SimpleDateFormat(“yyyy-MM-dd_HH:mm:ss”);
键盘输入中不带空格用下划线替换
输入2022-05-20_15:30:00
在这里插入图片描述2. 用nextLine()接受空格
但nextLine()吞取前面的回车
使用前要重置一下
如:
scanner = new Scanner(System.in);
String dateString = scanner.nextLine();
SimpleDateFormat dateFormat = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值