Tworzę system internetowy, który będzie używany w krajach na całym świecie. Jednym z typów danych, które muszą być przechowywane, są daty i godziny.
Jakie są zalety i wady używania klas daty i czasu Java w porównaniu z bibliotekami innych firm, takimi jak czas Joda ? Wydaje mi się, że te biblioteki innych firm istnieją nie bez powodu, ale nigdy tak naprawdę ich nie porównywałem.
Odpowiedzi:
EDYCJA: Teraz, gdy Java 8 została wydana, jeśli możesz tego użyć, zrób to!
java.time
moim zdaniem jest jeszcze czystszy niż Joda Time. Jeśli jednak utkniesz przed Java-8, czytaj dalej ...Max zapytał o zalety i wady używania Jody ...
Plusy:
java.time
w Javie 8, ponieważ są one przynajmniej trochę podobneCons:
DateTimeZoneBuilder
przeszłości nie udało mi się skutecznie wykorzystać tego . Jest to jednak bardzo rzadki przypadek użycia.Aby odpowiedzieć na pomysł oxbow_lakes, aby skutecznie zbudować własne małe API, oto moje poglądy na temat tego, dlaczego jest to zły pomysł:
źródło
java.time.*
dla Java 6 i 7: threeten.org/threetenbpCóż, jeśli nie zamierzasz czekać na Java 8, mając nadzieję, że zaimplementują lepsze API do manipulowania datą i godziną, tak, proszę, użyj Joda-Time . To oszczędność czasu i uniknięcie wielu bólów głowy.
źródło
Odpowiedź brzmi: to zależy
JODA (i JSR-310) to w pełni funkcjonalna biblioteka daty / czasu, obejmująca obsługę wielu systemów kalendarzy.
Osobiście uważam, że JODA jest o krok za daleko, jeśli chodzi o złożoność tego, czego potrzebuję. 2 główne błędy (IMHO) w standardowej Javie
Date
iCalendar
klasach to:Chociaż zajmuje się nimi JODA, łatwo będzie Ci rzucić własne klasy dla
YearMonthDay
iInstant
, które używają klas java pod maską do rzeczywistych obliczeń „kalendarzowych”. Nie musisz wtedy zapoznawać się z API składającym się z> 100 klas, innym mechanizmem formatowania / parsowania itp.Oczywiście, jeśli potrzebujesz pełnej reprezentacji różnych chronologii (np. Hebrajskiej) lub chcesz mieć możliwość zdefiniowania własnego wyimaginowanego systemu kalendarza (np. Dla gry, którą piszesz), być może JODA lub JRS-310 jest dla Ciebie. Jeśli nie, to sugeruję, że prawdopodobnie najlepszym rozwiązaniem jest skręcenie własnego.
Liderem specyfikacji JSR-310 jest Stephen Colebourne, który napisał JODĘ na pierwszym miejscu, więc logicznie zastąpi JODĘ.
źródło
Wszystko zależy od tego, co robisz z datami. Jeśli po prostu je utrwalasz, daty wbudowane w Javę prawdopodobnie zrobią wszystko, co chcesz. Jeśli jednak robisz obszerne manipulowanie datą czasową, prawdopodobnie lepiej będzie z Jodą.
źródło
Powinieneś użyć biblioteki Joda-Time, ponieważ:
przedstawiania daty.
Exception in thread "main" org.joda.time.IllegalFieldValueException: Cannot parse "2014-02-31": Value 31 for dayOfMonth must be in the range [1,28].
Możesz polubić tę stronę, aby uzyskać więcej informacji: http://swcodes.blogspot.com/
źródło