4

以下のコードでは、解析例外を取得する必要がありますが、プログラムはどういうわけかそれを有効な日付に変換します。

しかし、dthoursを「07:0567」と指定すると、解析エラーが発生します。表示されている正確な形式を維持する方法。

日付文字列が1文字でも指定された形式( "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

SimpleDateFormatがそのような場合に解析例外をスローするように、df.setLenient()をfalseに設定します。

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 に答える