Мне нужно написать программу, которая будет проверять, является ли данная дата действительной или недействительной. Дата находится в формате mm/dd/yyyy, и мне нужно выяснить способ разделить строку на месяцы, дни и годы, чтобы определить, действительна ли дата или нет. Я не могу просто вводить отдельный день месяца и год отдельно, так что это вызывает проблему. В принципе, мне просто нужно выяснить, как разделить строку на разные месяцы, чтобы я мог работать с количеством дней в месяце и использовать это для проверки даты. Любая помощь, которую вы могли бы мне дать, действительно оценили бы, я застрял на этом и не могу понять. Благодарю.Разбиение строк в java
ответ
Вы должны использовать DateFormat
, как и другие. Если это не вариант, я думаю, вы можете сделать это:
String myDate = "10/23/1991";
String[] split = myDate.split('/');
String month = split[0];
String day = split[1];
String year = split[2];
Не будет работать для '5/2', это сработает. – PlasmaPower
@PlasmaPower Он сказал, что получит его только в формате «мм/дд/гггг». – AxiomaticNexus
О, я думал, что он хочет посмотреть, было ли это в формате 'mm/dd/yyyy'. Упс. +1 – PlasmaPower
Это почти никогда не является хорошей идеей разобрать дату по своему усмотрению. Даты - загадочные вещи: прыжки секунд, високосные годы, часовые пояса и т. Д. - очень сложная вещь.
Чтобы проверить дату, я бы рекомендовал использовать 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");
}
}
Попробуйте с 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);
}
- 1. Разбиение строк по столбцу (Java)
- 2. Разбиение строки в Java в массив строк
- 3. Разбиение строк, таких как push1234 в java
- 4. Разбиение строк в javascript
- 5. Разбиение строк в SQL
- 6. Разбиение строк в mysql
- 7. Разбиение строк в JavaScript
- 8. Java - разбиение списка строк на меньший список?
- 9. Разбиение строки в Java
- 10. Java Разбиение строк из текстового файла
- 11. Разбиение строк с регулярным выражением. Java
- 12. Разбиение строк на {} & []
- 13. Разбиение строк с пробелами
- 14. Разбиение списка списка строк
- 15. Разбиение строк в массиве - python
- 16. Разбиение списка строк в OCaml
- 17. Разбиение битовых строк в Perl
- 18. Многократное разбиение строк в python
- 19. Разбиение строк в C strtok()
- 20. Разбиение массива строк
- 21. Разбиение строк контейнером Python
- 22. Разбиение строк на ints
- 23. Не удалось выполнить разбиение строк
- 24. Разбиение arraylist java
- 25. Разбиение строк неотображаемым типом
- 26. Разбиение стека в Java
- 27. Разбиение строки в Java
- 28. Разбиение строки в Java
- 29. Разбиение битов в Java
- 30. Java Разбиение строки
Вы в состоянии использовать DateFormat? Проверьте http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html –
Если DateFormat не работает, загляните в пакет java.util.regex. –