Régóta tudjuk, hogy a Java dátumkezelése javításra szorul (a java.util.Date osztály már mejdnem minden metódusa használaton kívül helyezett, nem véletlenül). Mikor komolyabb dátumkezelésre volt szükségem, akkor találkoztam a JodaTime nevű open source komponenssel. Most azért találkoztam vele újra, mert szóba került, hogy a Java7-be bekerül a dátum keretrendszer.
A JodaTime teljes egészében a dátumkezelésre összpontosít (bár vannak más joda szoftverek is). Természetesen mindent tud, amit a Java Date és különböző Calendar osztályai, és valamennyire kompatibilis is azokkal. A Date osztály akkor vált elavulttá, mikor a dátumkezelés nemzetköziesítése szükségessé vált. Ennek támogatására új osztályokat vezettek be. A dátumkezelés osztályainak a többszálúsággal is meg kellett küzdeniük, azaz nem módosítható objektumokra volt szükség. A JodaTime szintén felkészült ezekre a kihívásokra, de jóval többet is tud. Nézzük, mik ezek pontosan:
- Dátumok kezelésének kifinomult támogatása. Erre a DateTime osztályt használhatjuk. Mindetn tud, ami a dátumkezeléshez szükséges. A dátumrengszeret (gregoriánus, juliánus stb.) egy másik osztály, a Chronology segítségével állíthatjuk be. Számos Chronology elkészült, illetve újak készíthetők. Mint majdnem minden osztály, a DateTime is nem módosítható, és hogy a leszármazottak se viselkedhessenek másképp, egyszerűen nem származtathatunk alosztályokat belőle.
- Időtartamok kezelse. Egy időtartam valamennyi ezredmásodpercet jelent, ahogy a neve is mutatja. Kezelésére a Duration osztály használhatjuk.
- Intervallumok beépített kezelése az Interval osztállyal.
- Parciális dátumok kezelése. Egy parciális dátum olyan dátum, amelynek nem ismerjük minden részletét. Ha például nem ismerjük az időzónát, akkor lokális dátummal van dolgunk. Ha nem ismerjük a dátumkomponenst, akkor egy időt reprezentáló objektumunk van. A parciális dátumok kezelését a Partial osztállyal valósíthatjuk meg.
- Több nap, hét, óra, perc stb. együttes kezelése. Ez hasznos lehet például akkor, ha öt napor (a munkanapokat) együttesen akarunk kezelni.
- Előre elkészített Comparator a dátumok hasonlításához.
A komponens honlapján több bemutató példa is található, érdemes átnézni őket. Az API használatát viszonylag gyorsan el lehet sajátítani.
Nincsenek megjegyzések:
Megjegyzés küldése