如何将删除前导0的字符串转换为日期

时间:2017-04-05 09:37:54

标签: java

2016-12-12 23:59:52正确转换为“2016年12月12日23:59:52 CST”

但以下不是

2016-12-13 0:31:13错误地转换为“星期四12月12日00:31:13 CST 2017”

这是我的编队

SimpleDateFormat formater = new SimpleDateFormat("yyyy-dd-MM HH:mm:ss");

我的小时缺少前导0,导致转换错误。如何使形成器与删除前导0的时间兼容,例如 2016-1-1 0:0:0

3 个答案:

答案 0 :(得分:2)

我认为没有转换错误,与缺少前导0无关。你刚刚改变了你的编队中的日期和月份。只需改变

("yyyy-dd-MM HH:mm:ss") to ("yyyy-MM-dd HH:mm:ss")

答案 1 :(得分:1)

试试这个:

java.util.Date data = new java.util.Date();

SimpleDateFormat formater = new SimpleDateFormat("yyyy-dd-MM HH:mm:ss");

String dataString = formater.format(data);
dataString = dataString.replaceAll("-0", "-").replaceAll(":0", ":").replace(" 0", " ");
System.err.println("dataString = "+dataString);

答案 2 :(得分:1)

没有转换错误,与丢失前导0无关。你刚刚改变了你的编队中的日期和月份