-3

私のコードを見てください:

 try {
           // String date = "30Jul2013";
            SimpleDateFormat sdf = new SimpleDateFormat("ddMMMyyyy", Locale.ENGLISH);
            Date d = sdf.parse(date);

            SimpleDateFormat nsdf = new SimpleDateFormat("MMMM dd, yyyy h:mm a", Locale.ENGLISH);
            String nd = nsdf.format(d);
            System.out.println(nd);

            return nd;
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

エラーが発生しています:

java.text.ParseException: Unparseable date: "2013-07-30 10:58:55.171"
at java.text.DateFormat.parse(DateFormat.java:337)

simpledateformat から 2013 年 7 月 30 日午前 11 時 10 分を出力したいと思います。私のコードには LOCALE があります。それで、私は他に何をすべきですか?

前もって感謝します!

4

1 に答える 1

2
 try {
        // String date = "30Jul2013";
        SimpleDateFormat sdf = new SimpleDateFormat("ddMMMyyyy", Locale.ENGLISH);
        Date d = sdf.parse(date);

日付文字列変数の行はコメントアウトされているため、解析している文字列を誰が知ることができますか? -- その JVM です。

Robert Harvey が指摘しているように、実際に解析しようとしている文字列は、例外メッセージに表示されます。解析する前にその文字列を出力すると、それが期待したものではなく、コンパイラが正しいこともわかります。

要するに、sdf SimpleDateFormat オブジェクトが "30Jul2013" に似た形式の文字列をフォーマットしていることを何とか期待していますが、JVM は、これは単にそうではなく、解析しようとしている文字列は実際には何も見えないことを伝えています。このように、むしろ「2013-07-30 10:58:55.171」です。

于 2013-07-30T03:13:31.887 に答える