2011-11-24 47 views
0

我已经得到了下一个Java代码:试图弦号码 “7” 转换为07:00格式的SimpleDateFormat

SimpleDateFormat formatter = new SimpleDateFormat("kk:mm"); 
    Date rangoInicio = formatter.parse(filtroHorariosIda.get(0)); 

为filtroHorariosIda.get值(0)是 “7”(报价包括因为它是一个字符串)

问题是java的抛出异常

java.text.ParseException Unparseable date: "7" 

我一直在阅读Java文档,我认为这是一个完美的解析操作。问题在哪里?

谢谢。

回答

1

这是因为你试图解析“7”,并说它应该使用“kk:mm”格式。

尝试此代替

Date rangoInicio = formatter.parse(filtroHorariosIda.get(0) + ":00"); 
2

我不太明白... kk:mm期望格式中的内容,以及kk:mm。你给它“7”。你不应该通过“7:21”而不是(在这种情况下是“7:00”)?

1

您的解析字符串需要包含“:”的输入,其中包含 - :您的输入不包含“:”,所以当然SimpleDateFormat当然不能解释您的输入。

如果您的输入是“7:0”,它会正常工作。

1

为了完整性的缘故,一个简单的测试产生了以下结果:

public void testDateParse() 
{ 
    String probes[] = {"7","07:00","7:00","7:0",":"}; 

    for (String probe : probes) { 
     try 
     { 
     SimpleDateFormat formatter = new SimpleDateFormat("kk:mm"); 
     Date rangoInicio = formatter.parse(probe); 
     System.out.println(probe + " is parsable"); 
     } 
     catch(ParseException ex) 
     { 
      System.out.println(probe + " is not parsable"); 
     } 
    }  
} 

7为不能分析

07:00是可解析

7:00可解析

7:0是可解析的

:为不能分析