0

文字列が ISODateTimeFormat.dateTimeNoMillis() の形式であるかどうかを検証する必要があります。

final DateTimeFormatter dateHourMinuteSecondFormatter =ISODateTimeFormat.dateTimeNoMillis();
String s = "2012-W12-12";
try {
        dateHourMinuteSecondFormatter.parseDateTime(s);
    } catch (IllegalArgumentException e) {
        e.setMessage("exception thrown);
    }

日付の形式が間違っているため、例外がスローされるはずですが、そうではありません。他に追加する必要があるものはありますか?

4

1 に答える 1

2

いいえ、これ以上何もする必要はありません。

実際に例をスローしていると思われますが、メッセージの診断は正しくありません。Joda Time 2.1を使用すると、これは確かに失敗します。

import org.joda.time.*;
import org.joda.time.format.*;

public class Test {

    public static void main(String[] args) throws Exception {
        DateTimeFormatter formatter = ISODateTimeFormat.dateTimeNoMillis();
        String s = "2012-W12-12";
        try {
            DateTime dt = formatter.parseDateTime(s);
            System.out.println(dt);
        } catch (IllegalArgumentException e) {
            System.out.println(e);
        }
    }
}

出力:

java.lang.IllegalArgumentException: Invalid format: "2012-W12-12" is malformed
at "W12-12"
于 2013-01-16T23:22:28.333 に答える