报错如下:
Exception in thread "main" java.text.ParseException: Unparseable date: "2020-03-10 15:15:25"
at java.text.DateFormat.parse(DateFormat.java:366)
at io.nutz.demo.utils.excels.ExcelUserTest.StringToDate1(ExcelUserTest.java:315)
at io.nutz.demo.utils.excels.ExcelUserTest.main(ExcelUserTest.java:300)
最近项目上用到的,上测试案例
这是我的excel
这里时间位置 改成对应的格式或者直接用文本然后解析
(如果单元格格式改了之后,在工具类加个判断也能解决!视情况而定)
我是用纯文本解析(单元格格式不是那个NUMERIC,而是STRING,但是有时候excel抽风 改不过来)的 :
然后获取时间
这块已经获取到了
然后,我们来替换下 /(不替换也行,看你的格式)
再来转换成Date:
然后瞬间爆炸!
再来一组:
神奇吧? 我第一次我也蒙蔽了
但我不服啊 于是我来打印下:
有效果了吧?很直观,下面那个就是读取到的
try again !!
自定义了一个在空字符串对象然后再试 OKK
我的理解是: 读取到的并不是单纯的空字符串
看来要多读点书
--------- 补更 1207----------------
今天用新版的idea(2020.2)打开看到了这个
果然不单纯!那就是编码格式的问题了
于是查了unicode编码表:
unicode编码表
发现编码是\u00A0,也找到了手动输入的空格的编码 \u0020
那就好办法了呀,直接替换编码:
String s2=" 11111";
String s3=" 11111";
System.out.println("修改前:");
System.out.println(s2.equals(s3));
System.out.println("修改后:");
s2=s2.replace("\u00A0","");
System.out.println(s2.equals(s3.replace(" ","")));
解决!
还可以根据ASCII 码表来处理
但是,你既然拿到特殊字符了,为什么不直接替换呢?
纯解决方案!