Czas i Data w Javie
Na infoQ pojawił się wywiad dot. zapowiadanego już dawno wprowadzenia jakiejś NORMALNEJ obsługi czasu i dat w Javie. Sam wywiad może nie jest jakiś pasjonujący, ale podobał mi się jeden fragment:
InfoQ: Some of these concepts have already been explored in JodaTime. What's the relationship between that and JSR 310?Piękne :-) Ciekawe tylko dlaczego trzeba było czekać tak długo na tak oczywisty ruch...
Stephen: JodaTime has been used by a lot of developers already, but it's time that the base Java case is improved for everyone. The most obvious change is the package name (fromorg.joda.timetojavax.time), but in practice there are a few subtle differences as well.
Etykiety: java
Komentarze (9):
No ba :D Czas to delikatna materia.. ostrożnie trzeba i powolutku :-)
Cóż, mi do tej pory nie doskwierały klasy "czasowe" w Javie. Do użycia Joda-Time zmusił mnie dopiero fakt, że java.util.Calendar nie da rady użyć w GWT.
A Joda jest w tym środowisku dostępna.
Ciekawe, czytałem niedawno o JSR 310 (Specification, 4.4) i ujrzałem: The design adopted is notably different to the Java SE Calendar API and the Joda-Time API.
Coś się plączą w zeznaniach, ale dobrze, że coś się dzieje z tym nieprzyjemnym API. Zwłaszcza brak niezmienności Date i Calendar są karygodne.
Ja myślę, że dla takiego tematu jak czas i data to cokolwiek co nie jest jest jakimś DSLem powinno być karane śmiercią (projektu, nie programisty...) My z Jody korzystamy od samego początku projektu - podjęliśmy decyzję o przejściu na nią po napisaniu... chyba już pierwszego testu :)
Łukasz. Jeśli Ci nie doskwierają klasy Calendar i date w Javie to może znaczyć tylko jedno: masz skłonności sado-macho.
mógłbyś mi np pokazać jak używając tych klas obliczyć ilość miesięcy między dwiema datami?
w JodaTime to wygląda tak:
Months.monthsBetween(new LocalDate(2000, 1, 1), new LocalDate(2001, 4, 1)).getMonths()
@Michał
Łukasz pewnie po prostu nigdy nie operował datami i tyle. Nie jest możliwe, żeby to nie doskwierało. Połowa API jest deprecated a to co nie jest, jest nieużyteczne. Blueee
A poza tym po polsku jest liczba miesięcy a nie ilość. :]
fakt, mój błąd.
A czemu nie używać własnych klas do reprezentacji daty, czasu, kalendarza? Wewnętrzna implementacja nie ma wtedy wpływu na naszą aplikację, a czy będzie to Joda czy Java API jest w tym momencie bez znaczenia.
Nasze klasy ograniczą użycie tylko do niezbędnych operacji i nie pozwolą na "niekontrolowany" dostęp.
Jak widać, nie długo i Joda będzie deprecated ;-)
No można mieć i swoje, ale przecież nie będziesz tego pisał od zera. Twoje mogą to tylko opakowywać sprawnie a'la np. commons-logging. A do faktycznej implementacji i tak wygodniej użyć Jodę niż ten standardowy shit :-)
Prześlij komentarz
<< Strona główna