我已将一些日期转换为字符串,并使用
将它们存储在我的数据库中 DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
他们看起来像这样:“12-09-2012 02:33:00”当他们作为字符串出现时
然后我尝试使用
检索它们 DateFormat formatter = new SimpleDateFormat("hh:mm:ss");
这给了我一个parseexception,说它是不可解释的日期,这是异常消息:
java.text.ParseException:Unparseable date:“12-09-2012 02:33:00”(偏移2处)
以下是一些代码,可以更好地理解我在做什么:
String start="";
String slut="";
DateFormat formatterday = new SimpleDateFormat("hh:mm:ss");
start=formatterday.format(formatterday.parse(a.startTime));
slut=formatterday.format(formatterday.parse(a.endTime));
我尝试将我的语句分开,以便先解析然后格式化,并且错误似乎在解析期间出现。
答案 0 :(得分:2)
@Ken你的a.startTime变量的日期格式应该是“hh:mm:ss”格式。
如果您的a.startTime值类似于02:33:00,那么您的代码应该有效。
请检查您的a.startTime值并使用正确的日期格式。
答案 1 :(得分:2)
简单日期格式接受特定模式,而字符串值“12-09-2012 02:33:00”,显然不遵循给定模式“hh:mm:ss”。要将原始日期字符串转换为日期对象,您需要使用原始模式。
简单示例:
DateFormat formatter1 = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
DateFormat formatter2 = new SimpleDateFormat("hh:mm:ss");
String originalDateValue = "12-09-2012 02:33:00";
Date originalDate = formatter1.parse( originalDateValue );
String shortDateValue = formatter2.format( originalDate );
Date shortDate = formatter2.parse( shortDateValue );
System.out.println( originalDateValue );
System.out.println( originalDate );
System.out.println( shortDateValue );
System.out.println( shortDate );
这将打印出来:
12-09-2012 02:33:00
Wed Sep 12 02:33:00 CEST 2012
02:33:00
Thu Jan 01 02:33:00 CET 1970
请注意,shortDate从时代开始就具有价值 - > 1.1.1970。