Nowoczesne Odpowiedź: Użycie LocalDate
od java.time
, nowoczesnego data i godzina Java API, a jego toString
metody:
LocalDate date = LocalDate.of(2012, Month.DECEMBER, 1); // get from somewhere
String formattedDate = date.toString();
System.out.println(formattedDate);
Drukuje
2012-12-01
A data (czy mówimy java.util.Date
lub java.time.LocalDate
) nie ma formatu w nim. Wszystko, co ma, to metoda toString
, która wytwarza pewien format i nie można zmienić metody toString
. Na szczęście LocalDate.toString
produkuje dokładnie taki format, o jaki prosiłeś.
Klasa Date
jest już nieaktualna, a klasa SimpleDateFormat
, z której próbowano korzystać, jest bardzo kłopotliwa.Zalecam, abyś zapomniał o tych klasach i używał zamiast tego java.time
. Nowoczesne API jest o wiele przyjemniejsze w obsłudze.
Poza tym: zdarza się, że otrzymujesz Date
ze starego interfejsu API, którego nie możesz zmienić lub którego nie chcesz teraz zmieniać. Najlepszą rzeczą, jaką możesz zrobić z nią to przekształcić go java.time.Instant
i robić żadnych dalszych operacji stamtąd:
Date oldfashoinedDate = // get from somewhere
LocalDate date = oldfashoinedDate.toInstant()
.atZone(ZoneId.of("Asia/Beirut"))
.toLocalDate();
Należy zastąpić żądaną strefę czasową, gdyby nie stało się Azja/Bejrut. Następnie postępuj jak wyżej.
Link:Oracle tutorial: Date Time, wyjaśniając, jak korzystać z java.time
.
5 znaczników daty, ale nie uważasz, że rzeczywisty język, którego używasz, był na tyle ważny, aby o nim wspomnieć? – Oded
jakie jest znaczenie w tej metodzie 'public Date ConvertDate (Data daty)'? – vels4j
@ vels4j jego powracająca data w formacie rrrr-MM-dd –