论坛首页 Java企业应用论坛

自己想的一个java日期验证,不用正则

浏览 6876 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (1)
作者 正文
   发表时间:2012-10-25  
解未知数 写道
这不是一个新方法, 老早就有了, 甚至js都有这种方法.

大多反对此方法的观点是, 异常性能太低!!


同意你的说法,异常性能太低,要匹配堆栈中的异常类型来抛出,相当耗性能
0 请登录后投票
   发表时间:2012-11-20  
为什么我看着这么像apache commons lang
0 请登录后投票
   发表时间:2012-11-20  
手里有1.3版的apache jar包org.apache.commons.validator里的DateValidator也是这么写的
不知道有没有新版变化啥的
/**
     * <p>Checks if the field is a valid date.  The <code>Locale</code> is
     * used with <code>java.text.DateFormat</code>.  The setLenient method
     * is set to <code>false</code> for all.</p>
     *
     * @param value The value validation is being performed on.
     * @param locale The locale to use for the date format, defaults to the default
     * system default if null.
     * @return true if the date is valid.
     */
    public boolean isValid(String value, Locale locale) {

        if (value == null) {
            return false;
        }

        DateFormat formatter = null;
        if (locale != null) {
            formatter = DateFormat.getDateInstance(DateFormat.SHORT, locale);
        } else {
            formatter =
                    DateFormat.getDateInstance(
                            DateFormat.SHORT,
                            Locale.getDefault());
        }

        formatter.setLenient(false);

        try {
            formatter.parse(value);
        } catch(ParseException e) {
            return false;
        }

        return true;
    }
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics