复现
错误代码如下
SimpleDateFormat format = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
看到这段代码你肯定一时间难以看出问题所在。为啥只有几个偏门机型会报错呢???几番折腾,找到一个时间格式化编码参照表
根据参照表,确实没有Y这个格式的编码,只有小写y的格式编码。这时我猜测会不会是这个原因呢?测试后发现还真是这个问题。
总结
//错误写法
SimpleDateFormat format = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
//正确写法
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
这里有人就会问,那为啥这么多机型都不报错!!!额,这个我真解释不了,碰到bug改就是了,管它那么多干啥。所以面对这种问题,我们还是得严格按照规定的写法去写,不能抱有侥幸心理。