Java:
Analiza składniowa daty z łańcucha znaków
Jak:
Używając pakietu java.time
(Polecane w Java 8 i późniejszych):
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class DateParser {
public static void main(String[] args) {
String dateString = "2023-04-30";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate date = LocalDate.parse(dateString, formatter);
System.out.println(date); // Wynik: 2023-04-30
}
}
Używając SimpleDateFormat
(Starsze podejście):
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateParser {
public static void main(String[] args) {
String dateString = "30/04/2023";
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
try {
Date date = formatter.parse(dateString);
System.out.println(date); // Format wyjściowy zależy od domyślnego formatu systemu
} catch (ParseException e) {
e.printStackTrace();
}
}
}
Używając bibliotek innych firm (np. Joda-Time):
Joda-Time było znaczącą biblioteką stron trzecich, ale teraz jest w trybie konserwacji ze względu na wprowadzenie pakietu java.time
w Java 8. Jednakże dla tych, którzy używają wersji Java przed 8, Joda-Time jest dobrym wyborem.
import org.joda.time.LocalDate;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
public class DateParser {
public static void main(String[] args) {
String dateString = "2023-04-30";
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd");
LocalDate date = LocalDate.parse(dateString, formatter);
System.out.println(date); // Wynik: 2023-04-30
}
}
Zauważ, że pracując z datami, zawsze należy być świadomym ustawień strefy czasowej, jeśli parsujesz lub formatujesz daty i czasy, a nie tylko daty.