2010-07-15 95 views
1

任何人都可以告诉我以下解决方案: 我在java.I中有一个Util.Date对象,想验证输入的日期。我使用所需的格式解析日期对象。如何在Java中验证Date对象

例如,格式为“MM/dd/yyyy”,输入日期为“23/12/2010” 对于这个日期,我没有得到任何解析异常,但日期调整为“11/12/2011“这不应该发生在我的情况。而是我想抛出错误信息。

请尽快帮助我。

在此先感谢

回答

4

在DateFormat类,你必须重新设置 “网开一面” 标志,即

SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy"); 
sdf.setLenient(false); 
. . . 
sdf.parse(mydate, pos); 
+0

非常感谢。它按我的意愿工作。 – asd 2010-07-15 09:27:03

4

必须设置的SimpleDateFormat你的 “手下留情” 模式为false:

SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy"); 
sdf.setLenient(false); 

默认情况下,它容忍一些错误,并尝试以某种方式解释它们。

1

根据您的格式表达,我们可以利用的SimpleDateFormat调整月份,日期和年份,代码如下

public class SimpleDateFormatString2DateParse { 

public static void main(String[] args) { 

    SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy"); 

    try { 
     Date date = formatter.parse("11/12/2011"); 
     System.out.println("Date is : " + date); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    } 
    } 

----- -----输出

日期是:星期六Nov 12 00:00:00 PST 2011