2014-03-13 98 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); 
    }