在java中拆分字符串

时间:2014-03-13 01:37:30

标签: java string

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

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分: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");
    }
}

答案 2 :(得分: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);
    }