プロが教える店舗&オフィスのセキュリティ対策術

こんにちは
現在javaのPGで日付チェックを行いたくプログラムを組んでいるのですが、色々なサイトを見ながら以下のようなものを書きました。
しかし、動かすと必ず例外にcatchされていまいます。

なぜ例外処理をされてしまうのか、原因がわかりません。
何がいけないのでしょうか??
ご教授お願いいたします。

import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
//strbeginDate, strcloseDateはフォームよりString型で受け取ります。
String strbeginDate, strcloseDate;

SimpleDateFormat DatebeginDateformat = new SimpleDateFormat("YYYYMMDD");
SimpleDateFormat DatecloseDateformat = new SimpleDateFormat("YYYYMMDD");
Date datebeginDate = DatebeginDateformat.parse( strbeginDate );
Date datecloseDate = DatecloseDateformat.parse( strcloseDate );
intflag = datebeginDate.compareTo(datecloseDate);

A 回答 (3件)

java.lang.IllegalArgumentException: Illegal pattern character 'Y'




エラーをちゃんと読みましょうね。

この回答への補足

このエラーは、確認したのですが、
"SimpleDateFormat("YYYYMMDD");"の部分がいけないのか、
"DatebeginDateformat.parse( strbeginDate );"の部分がいけないのかがわからないのです。

すみません、とんちんかんでしょうか?
ちなみに、"String strbeginDate, strcloseDate"は、YYYYMMDDで変数に格納してあります。

補足日時:2007/09/04 17:15
    • good
    • 0

No.1の方が「エラーを読む」と言われているのは、



Illegal pattern character 'Y'

の部分のことです。日本語にすると

不正なパターン文字'Y'

ですよね。「YYYY」という表現は使えないんです。
では使えるパターン文字は何なのか?はちゃんとドキュメントに書いてあります。

http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ …


例外が発生したときは、StackTraceを目を皿のようにして読みましょう。
特に1行目の例外名の右側に書いてあるメッセージは必ず意味を理解しなければなりません。
大概の問題はそこに答えが書いてあります。
    • good
    • 0
この回答へのお礼

はぁぁ、そうゆうことでしたか・・・
大変ご迷惑おかけしました。

YYYYMMDDの文字列が全部いけない渡し方をしていて、
Yは一番始めにいるからエラーに表示されているのだと思っておりました。
すみません、大変にたすかりました。
本当にありがとうございます。

お礼日時:2007/09/04 18:46

エラーを"読みました"か?



ここに答えが書いてますが。
それでも分からなければ、このエラーの意味を書いてみて下さい。

この回答への補足

わかりませんので書きます。
このエラーは、渡す引数の値の型などが違うから発生しているのではないのでしょうか?
私が使用したもので引数を渡しているのが
" SimpleDateFormat("YYYYMMDD")"と
"DatebeginDateformat.parse( strbeginDate )"だったので
("datebeginDate.compareTo(datecloseDate)"はコメントアウトしてもエラー内容が変わらないので今は除きます。)
そこがいけないのかと思ったのです。

違いますか?

補足日時:2007/09/04 18:03
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!