项目场景:
`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”);