Расщепление строк в Java

1

Мне нужно написать программу, которая будет проверять, является ли данная дата действительной или недействительной. Дата находится в формате mm/dd/yyyy, и мне нужно выяснить способ разделить строку на месяцы, дни и годы, чтобы определить, действительна ли дата или нет. Я не могу просто вводить отдельный день месяца и год отдельно, так что это вызывает проблему. В основном мне просто нужно выяснить, как разделить строку на разные месяцы, чтобы я мог работать с каждым месяцем дней и использовать это для проверки даты. Любая помощь, которую вы могли бы мне дать, действительно оценили бы, я застрял на этом и не могу понять. Благодарю.

Теги:
string

3 ответа

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 , он вылетит.
  • 0
    @PlasmaPower Он сказал, что получит его только в формате «мм / дд / гггг».
Показать ещё 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");
    }
}
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);
    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню