使用java8你可以得到的字符串,並定義一個DateTimeFormatter,這會給您可以靈活地解析字符串轉換成LOCALDATE的,你不需要照顧字符串如何「看起來像」,之後你會得到LOCALDATE的對象,從中可以獲取的年,月,日
String geburtstag = "-";
DateTimeFormatter formatter = DateTimeFormatter
.ofPattern("[ddMMyyyy]" + "[ddMMyyyy]" + "[dd.MM.yyyy]" + "[dd-MM-yyyy]");
// case1
geburtstag = "23.06.2017";
LocalDate ldt = LocalDate.parse(geburtstag, formatter);
System.out.println("Year: " + ldt.getYear());
System.out.println("Month: " + ldt.getMonthValue());
System.out.println("Day: " + ldt.getDayOfMonth());
// case2
geburtstag = "23062017";
ldt = LocalDate.parse(geburtstag, formatter);
System.out.println("Year: " + ldt.getYear());
System.out.println("Month: " + ldt.getMonthValue());
System.out.println("Day: " + ldt.getDayOfMonth());
// case3
geburtstag = "23-06-2017";
ldt = LocalDate.parse(geburtstag, formatter);
System.out.println("Year: " + ldt.getYear());
System.out.println("Month: " + ldt.getMonthValue());
System.out.println("Day: " + ldt.getDayOfMonth());
我不舒爾你如何的問題是指:d,但它是一個GUI和nf_datum是多少場,後來我把數字填進一個數組 – Jana
你的java版本是什麼?你可以使用Java 8嗎? –
當你說「它不工作」 - 它以什麼方式不起作用?你得到一個錯誤,或只是不是你期望的輸出?一般來說,試圖編寫自己的代碼來處理日期解析和格式化邏輯是一個非常糟糕的主意; Java內置許多不同的實用程序以幫助您完成工作。我建議你看一下文檔,從這裏開始(https://docs.oracle.com/javase/tutorial/i18n/format/dateintro.html),看看Java會免費給你什麼。 – DaveyDaveDave