4

在下面的代码中,我需要获取解析异常。但是程序以某种方式将其转换为有效日期。

但是,如果我将 dthours 设为“07:0567”,则会给出解析错误。那么如何保持显示的确切格式。

如果日期字符串偏离给定格式(“HH:MM:SS”),即使是单个字符,谁能告诉我该怎么做才能引发错误。

public static void main(String[] args) {

    String dthours="07:4856:35563333";
    SimpleDateFormat df = new SimpleDateFormat("HH:MM:SS"); 
    try
    {
        Date d = df.parse(dthours);
        System.out.println("d "+d);
    }
    catch (ParseException e)
    {
        System.out.println("parseError");

    }
4

1 回答 1

10

将 df.setLenient() 设置为 false,以便 SimpleDateFormat 在这种情况下抛出解析异常。

public static void main(String[] args)
{
    String dthours = "07:4856:35563333";
    SimpleDateFormat df = new SimpleDateFormat("HH:MM:SS");
    df.setLenient(false);
    try
    {
        Date d = df.parse(dthours);
        System.out.println("d = " + d);
    }
    catch (ParseException e)
    {
        System.out.println("parseError");
    }
}

上面的代码段将为该输入打印“parseError”。

于 2012-08-22T11:54:35.313 回答