在java构造函数中提取日期

时间:2012-07-14 06:19:28

标签: java constructor

我需要从接收字符串变量的构造函数验证日期mm / dd。我尝试了几种没有运气的方法。最后我试过将字符串转换为ascii并验证这种方式,但是不起作用:

public Dated(String dateStr)
{
 this.dateStr = dateStr;
 for (int i = 0; i < dateStr.length(); i++)
 {
  char c = dateStr.charAt(i);
  asciiValues = (int) c;      // change each string character to ASCII value

 }

}

public void display()
{
    System.out.println(asciiValues);
}

1 个答案:

答案 0 :(得分:0)

据我所知,你在解析字符串值时遇到了麻烦。右。

在java中,我们有一些可用于验证这些内容的工具。

我将使用SimpleDateFormat实用工具类来验证日期并将Date转换为String

public class Dated{

  private SimpleDateFormat sdf = new SimpleDateFormat("MM/dd") // M --> Month; d--> Day

  public Dated(String dateStr) throws Exception{
    try{
      Date d = sdf.parse(dateStr);
      System.out.println( d );
    } catch (ParseException e) {
      // you can throw that exception just to 
      // avoid creating the object of this class
      throw e;
    }
  }
}

但请记住,您并未通过@JB Nizet确认闰年的日期。 您也可以通过验证年份来克服这一点。

在上面的代码中,如果您通过“02/29”,您将获得3月1日的日期。这不是正确的日期,因为1970年不是闰年。

所以我也会在我的日期验证中包括年份。

要添加年份,您可以将SimpleDateFormat更改为如下所示。

private SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy"); // y --> Year