Преобразование String в Date на Java — LocalDate.parse и SimpleDateFormat
В Java преобразовать строку в дату можно с помощью класса LocalDate и метода parse(). Форматтер DateTimeFormatter указывает, в каком формате записана исходная строка.
Чтобы понять этот пример, нужно знать:
Строки в Java
Базовый ввод и вывод в Java
Пример 1: преобразование строки в дату с предопределённым форматтером
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class TimeString {
public static void main(String[] args) {
// Format y-M-d or yyyy-MM-d
String string = "2017-07-25";
LocalDate date = LocalDate.parse(string, DateTimeFormatter.ISO_DATE);
System.out.println(date);
}
}
Вывод:
2017-07-25
В этой программе мы использовали предопределённый форматтер ISO_DATE, который принимает строку в формате 2017-07-25 или 2017-07-25+05:45. Метод parse() класса LocalDate разбирает строку с помощью указанного форматтера.
Пример 2: преобразование строки в дату по шаблону
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class TimeString {
public static void main(String[] args) {
String string = "July 25, 2017";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM d, yyyy", Locale.ENGLISH);
LocalDate date = LocalDate.parse(string, formatter);
System.out.println(date);
}
}
Вывод:
2017-07-25
В этой программе наша дата задана в формате MMMM d, yyyy. Мы создали форматтер с этим шаблоном и передали ему явную локаль Locale.ENGLISH, чтобы название месяца July корректно распозналось. Метод LocalDate.parse() разобрал строку и вернул объект LocalDate.