
こんにちは。
下記のようなフォーマットで日付型のチェックをしたいと
思っています。最低限(1)YYYYが入力されていればOKで、
最高だと(8)YYYY-MM-DDThh:mm:ss.sTZDまで入力可能です。
この日付が妥当であれるかどうかの判定はどのように
するのが良いでしょうか?
YYYY[-MM[-DD[Thh[:mm[:ss[.s[TZD]]]]]]]
(1)YYYY
(2)YYYY-MM
(3)YYYY-MM-DD
(4)YYYY-MM-DDThh
(5)YYYY-MM-DDThh:mm
(6)YYYY-MM-DDThh:mm:ss
(7)YYYY-MM-DDThh:mm:ss.s
(8)YYYY-MM-DDThh:mm:ss.sTZD
ちょっと考えたのは、まず、長さを見て各文字列を
パースして各場所の数値の妥当性をチェックって
言うものです。これでも出来そうな気もしますが、
他にも良いやり方などありましたら、
ご教示宜しくお願い致します。
No.3
- 回答日時:
すみません。
修正です。//全ての入力をいったんロングに変えてしまいます。
//その後、何らかの方法でその文字列を解析します。
StringBuffer sb = new StringBuffer("2004-08-16");
String data = "2000-01-01 00:00:00.0 TZD";
char[] data_char = data.toCharArray();
sb.getChars(0,sb.length(),data_char,0);
//ここまでで、入力された値を反映したロングフォーマット文字が完成します。
No.2
- 回答日時:
こんな風にすれば意外とスリムになるんじゃないでしょうか?
ちなみに、このサンプルは動作しません。適当に修正してください。
//全ての入力をいったんロングに変えてしまいます。
//その後、何らかの方法でその文字列を解析します。
String data = "2000-01-01 00:00:00.0 TZD";
char[] data_char = data.toCharArray();
sb.getChars(0,sb.length(),data_char,0);
//ここまでで、入力された値を反映したロングフォーマット文字が完成します。
//以降解析処理。ここの解析処理はご自分で・・・
DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.JAPAN);
Date myDate = df.parse(new String(data_char));
//例外がでればそれは、不正な値である。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 09:24
- Access(アクセス) Accessのデータ型の日付/時刻型について 1 2023/04/02 17:03
- Access(アクセス) エクセルのVBAについて教えてください。 4 2023/01/21 10:21
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/01/23 17:13
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Excel(エクセル) Excel 数行を1組とする300組ほどあるデータの項目を揃えたいです。 3 2023/01/26 19:38
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- MySQL SQLについて質問です。 SELECT TO_CHAR(TO_DATE('90-10-08.'YY- 4 2022/05/13 20:55
- Access(アクセス) アクセスで教えてください。 クエリで2日前を抽出する計算式を 入力して表示させると ちゃんとyyyy 1 2023/06/08 21:05
- Visual Basic(VBA) vb.net どうしてイコールにならないのでしょうか 4 2022/09/29 12:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
偶数ビットだけと奇数ビットだ...
-
excel vba 時間計算と条件分岐...
-
StringBufferクラスについて
-
バイト配列からfloat型の数値を...
-
javaというか文字列について少...
-
URIの記述方法
-
javaのCSVデータ読込についてです
-
ArrayListの要素数の上限
-
DLLで格納された値をVBに渡す方法
-
hiddenの値を消したくない!
-
SQL文がうまく通らないのですが
-
8桁整数を限りなく短い文字列に...
-
PSQLExceptionが発生する
-
文字列で読み込んだ計算式で値...
-
JavaでPOST
-
wsprintf関数の使い方について
-
EL式でのbeansからの値取得につ...
-
コンテンツダウンロード時のプ...
-
JavaでRandom Access Fileから...
-
indexOf("Internet Explorer")!...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ダブルクォーテーションを含む...
-
DateTimePickerに値を入れたい...
-
ArrayListの要素数の上限
-
BCD形式で時刻を!
-
wsprintf関数の使い方について
-
excel vba 時間計算と条件分岐...
-
javaのCSVデータ読込についてです
-
PSQLExceptionが発生する
-
JSPでの計算結果表示
-
実行シェルからCOBOLへパラメー...
-
matchesを否定文として使う方法...
-
JSPでHashMap・配列の変数の値...
-
DOSバッチで変数の値を変数名に...
-
VB6,論理演算子Orの使い方がわ...
-
C言語の変数(LSB)の合わせ込...
-
hiddenの値を消したくない!
-
ResultSetの内部構造(Java)
-
Evaluate()に文字列の形式の数...
-
getParameterの値変更
-
Javaの問題なのですが、「3文字...
おすすめ情報