Witam
Mam następujące pytanie: Jak najlepiej przechowywać date(dd:mm:yyyy) dla modelu,tak żeby było można było łatwo ją modyfikować i zapisywać/odczytywać z bazy danych (jdbc / hibernate)? Niestety java.util.Date jest problematyczne(trzeba dużo kodu pisać,bo np. konstruktor ze stringiem jest przestarzały itp).
- Rejestracja:ponad 10 lat
- Ostatnio:7 miesięcy
- Lokalizacja:Warszawa
- Postów:3573

- Rejestracja:ponad 21 lat
- Ostatnio:około 3 lata
- Lokalizacja:Space: the final frontier
- Postów:26433
Java 8 trochę w tej kwestii poprawiła, bo zrobiła swojego standardowego klona dla joda time
https://docs.oracle.com/javase/tutorial/datetime/iso/date.html
https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html

- Rejestracja:ponad 16 lat
- Ostatnio:około miesiąc
Z tym, że trzeba się pobawić i dopisać konwertery (JPA 2.1).
https://weblogs.java.net/blog/montanajava/archive/2014/06/17/using-java-8-datetime-classes-jpa
- Rejestracja:ponad 10 lat
- Ostatnio:7 miesięcy
- Lokalizacja:Warszawa
- Postów:3573
A coś dla javy 7?
Bo na razie znam taką metodę:
date=new String("01/12/1992");
sdf=new SimpleDateFormat("dd/mm/yyyy");
try{
p.setBirthDay(sdf.parse(date));
}catch(Exception ex){
}
Ale to troche dużo kodu jak na zwykłą date
- Rejestracja:ponad 10 lat
- Ostatnio:ponad 10 lat
- Postów:17
Biblioteka JodaTime:
String dateString = "01/12/1992"; // nie korzystaj z new String() !!!!!!
DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/mm/yyyy");
DateTime date = formatter.parseDateTime(dateString );
// możesz sobie teraz bardzo wygodnie pobierać dzień, miesiąc, rok i wiele innych danych
String dateString2 = date.toString(formatter); // data zmieniona w string "01/12/1992"
- Rejestracja:prawie 12 lat
- Ostatnio:prawie 5 lat
- Lokalizacja:Warszawa
- Postów:1683
zawsze w encjach itd... możesz używać bezpiecznie java.util.Date
a do różnych operacji na datach pomagać sobie Joda-Time konstruktorami przyjmującymi java.util.Date
oraz toDate()
zwracające java.util.Date
. albo z javy8 z tym, że tamte wydają mi się gorsze.
przyjmujemy jakieś util.Date i zwracamy util.Date
Date date = LocalDate.fromDateFields(new Date()).plusDays(2).toDate();
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.