36334


jspのテキストボックスに入力された日付を  
(●●●●/●●/●●)の形式で指定したいと思います。

jspで入力された値をservletで受け取り、  
その値をSimpleDateFormatを用いて  
(yyyy/MM/dd)で判定したいです。

(yyyy/MM/dd)形式なら値をjspに返し、  
そうでなければエラーメッセージを返そうと考えています。

どうすれば上記の方法で判定ができるでしょうか。  
お手数ですが宜しくお願いします。


CC BY-SA 3.0
2017-07-13T12:30:27.970
36329
2017-07-13T14:17:32.620
13251
question
java jsp servlet
日付が指定の形式で入力されているかの判定について


SimpleDateFormatを使いたいのであれば、Servletの実装はこんな感じでしょうか。

[code]

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
        DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
        sdf.setLenient(false);
        String inputDate = req.getParameter("inputDate");
        if(inputDate == null || inputDate.trim().length() == 0){
            req.setAttribute("errorMessage", "date is required");
        } else {
            try {
                sdf.parse(inputDate);
                req.setAttribute("inputDate", inputDate);
            } catch (ParseException e) {
                req.setAttribute("errorMessage", "date format is invalid");
            }
        }
        // ...(以下略)...
    }
    
[/code]

`setLenient(false)`を設定することで、形式だけでなく、うるう年などの日付の妥当性チェックもするようになります。


CC BY-SA 3.0
2017-07-13T14:07:42.387
36334
2017-07-13T14:17:32.620
2017-07-13T14:17:32.620
21092
21092
36329
answer