- - PR -
日付のチェックについて
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2002-11-11 18:56
H2さん。
詳しい説明本当にありがとうございます。 すっごく助かります。 早速やってみたいと思います。 ありがとうございました。m(__)m | ||||||||
|
投稿日時: 2002-11-12 10:20
みーちくです。
H2さんのソースを参考に作成してみたのですが、ありえない日付を入力してもエラーにはなりませんでした。 また、勘違いをしているのでしょうか。
[出力結果] 日付を「/」区切りで入力して下さい 2002/30/10 Thu Jan 10 00:30:00 JST 2002 日付を「/」区切りで入力して下さい 2002/11/12 Sat Jan 12 00:11:00 JST 2002 | ||||||||
|
投稿日時: 2002-11-12 11:11
よこやり状態ですが。…。
H2さんは、 df.applyPattern("yyyy/MM/dd"); //<- 日付のフォーマットを設定 みーちくさんは、 df.applyPattern("yyyy/mm/dd"); 大文字、小文字の違いで、「月」になるか「分」になるかの違いでしたね。 | ||||||||
|
投稿日時: 2002-11-12 11:40
kusさん
ありがとうございます。 きゃーはずかしいです。 ちゃんと確認すればよかったです。 ご指摘の通り、df.applyPattern("yyyy/MM/dd"); と修正したところ、「月」になりました。が、やはり、エラーとはなりませんでした。 【出力結果】 日付を「/」区切りで入力して下さい 2002/30/10 Thu Jun 10 00:00:00 JST 2004 日付を「/」区切りで入力して下さい 2002/11/12 Tue Nov 12 00:00:00 JST 2002 | ||||||||
|
投稿日時: 2002-11-12 11:52
こんにちわ、
私もJDK1.3なんでそういうメソッドを作成したりします。 H2さんのコードの場合、
も例外が起きずParseされてしまいます。(例は2002年2月10日に) 厳密に日付文字列の入力チェックを行なうときは、私は次のメソッドを使っています。 まぁ、好きなものを使ってもらうのがよいかなーと。
まぁ、上記の場合ゼロサプレスでも例外が発生するので、 "yyyy/M/d"あたりが良いかもしれませんが。 | ||||||||
|
投稿日時: 2002-11-12 13:02
はじめて、書きこみます、ふくみみと申します。
話題になっている不正な日付だけど、エラーにならない件ですが、 以下のメソッドを使用すれば、例外を発生するようになります。(13月や32日を許さない) sdf.setLenient(false); では では〜。 | ||||||||
|
投稿日時: 2002-11-12 13:24
ふくみみさん、
どもです。 親クラス(DateFormat)のメソッド、見てませんでした ありがとうございます。 #恥を承知で書いてよかった… | ||||||||
|
投稿日時: 2002-11-12 18:15
みーちくです。
ふくみみさん。Dandanさん。 いろいろありがとうございました。 実際はsetLenientを使用してチェックをしております。 ですが、このスレッドにも書いてありますが、ソースが長くなってしまいました。 java.text.SimpleDateFormatの使用方法がよくわからなかったので、いろいろ質問をしておりました。 皆様。ご意見ありがとうございました。 本当に勉強になりました。 | ||||||||
