2014-03-13 62 views
1

我需要编写一个程序来验证给定日期是否有效。日期格式为mm/dd/yyyy格式,我需要找出一种方法将字符串拆分为几个月,几天和几年,以确定日期是否有效。我不能单独输入月份日期和年份,所以这会导致问题。基本上我只需要弄清楚如何分割不同月份的字符串,以便我可以处理每个月的天数并使用它来验证日期。任何帮助你可以给我真的不胜感激我坚持这一点,不能弄明白。谢谢。在java中分割字符串

+1

您能够使用日期格式?查看http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html –

+1

如果DateFormat不起作用,请查看java.util.regex包。 –

回答

2

您应该使用DateFormat像其他建议。如果这是不是一种选择,我想你可以这样做:

String myDate = "10/23/1991"; 
String[] split = myDate.split('/'); 
String month = split[0]; 
String day = split[1]; 
String year = split[2]; 
+0

不适用于'5/2',它会崩溃。 – PlasmaPower

+0

@PlasmaPower他说他只能以“mm/dd/yyyy”格式收到。 – AxiomaticNexus

+0

哦,我以为他想看看它是否是'mm/dd/yyyy'格式。哎呦。 +1 – PlasmaPower

1

这几乎不是一个好主意解析你自己的日期。日期是神秘的东西:闰秒,闰年,时区等是一件极其复杂的事情。

要检查一个日期,我真的会推荐使用该功能的Java任务(或库)。这里有一个例子:

import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

public class Snippet { 

    public static void main(String[] args) throws ParseException { 

     // define your own date format 
     SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy"); 

     // for strict parsing of dates, turn of lenient mode 
     dateFormat.setLenient(false); 

     // try to parse the date 
     Date date = dateFormat.parse("13/31/1604"); 

     // if no exception occurs, your date is a valid date 
     System.out.println("date valid"); 
    } 
} 
0

尝试用SimpleDateFormat

Date date = null; 
    try { 
     String target = "07/30/1991"; 
     DateFormat df = new SimpleDateFormat("M/d/yyyy", Locale.ENGLISH); 
     date = df.parse(target); 
    } catch (ParseException ex) { 
     date = null; 
    } 
    if (date != null) { 
     // Or you use the deprecated methods .. just saying 
     Calendar cal = Calendar.getInstance(); 
     cal.setTime(date); 
     int day = cal.get(Calendar.DAY_OF_MONTH); 
     int month = cal.get(Calendar.MONTH); 
     int year = cal.get(Calendar.YEAR); 
    }