2011-08-03 10 views
1

SimpleDateFormatの日付形式をJavaの正規表現に変換する一般的な方法はありますか?SimpleDateFormatの日付形式を正規表現に変換する

+0

あなたはあなたの探しているものの例を挙げることができますか? –

+0

日付文字列を検証したいのですが、SimpleDateFormatは大規模な正規表現の一部であるため使用できません(2つの部分で何をするのか分からない) – DanielB

答えて

1

いいえ、すぐに使用できるものはありません。正規表現には、GMTやam/pmなどの日付制約についての知識はありません。最も簡単な例については、あなたがSimpleDateFormat(またはジョダ-時間DateTimeFormat)に固執するそうでない場合は、\d{2}-\{2}-\d{4}dd-MM-yyyy)を使用することができます

3

簡単な式の場合、あなただけがはるかに複雑で検証し、何かを生産するために

String dateFormat = "yyyy/MM/dd HH:mm:ss.SSS"; 
String regexFormat = dateFormat.replaceAll("[mHsSdMy]", "\\d"); 

を行うことができます。例えばMM = 03の場合、ddは01〜31の間でなければなりませんが、MM = 02の場合、ddは01〜28または29(年によって異なります)

MMM、DDD、ZZZを使用する場合、ロケール依存。

関連する問題