Hejka. nazywam się Marcin, jestem anonimowym programistą, mam problem :)
Chcę wczytać datę z łańcucha znaków, jednak mam z góry narzucony format daty:
sData1 = "29-Mar-1998";
W tym przypadku korzystam z dobrodziejstw Java 8 i klasy DateTimeFormatter:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MMM-yyyy");
Jednak tu pojawia się problem, prawdopodobnie związany z językową strefą czasową, bo w takim przypadku:
sData2 = "29-mar-1998"; // wszystko pięknie śmiga, mogę zrobić cokolwiek zechcę
Jednak przy sData1 otrzymuję wyjątek:
DateTimeParseException: Text '29-Mar-1998' could not be parsed at index 3
Pomożecie? Ogólnie mógłbym zmienić w jednym takim łańcuchu znakowym te literki czy w danym pliku, jednak takich dat mam więcej niż 10 tysięcy :), a wujek google nie daje mi żadnych wskazówek... Przykładowy kod programu, z trzeba przykładowymi łańcuchami:
public class testDaty {
public static void main(String[] args) {
String sData1 = "29-Mar-1998"; // <- wyrzuca wyjątek...
String sData2 = "29-mar-1998"; // <- działa
String sData2 = "12-Jan-2010"; // Mam ich więcej do obsłużenia...
String sData3 = "02-Nov-1999";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MMM-yyyy");
LocalDate date = LocalDate.now(); // Przykładowa klasa daty
String text = date.format(formatter); // Ogólnie formatter działa
System.out.println(text); // Ani wyjątku, ani problemu out: "13-maj-2016"
LocalDate date1 = LocalDate.parse(sData1, formatter); // tu problem...
System.out.println(date1);
}
}