Növekedési dátum Java-ban

1. Áttekintés

Ebben az oktatóanyagban megvizsgáljuk, hogyan lehet a dátumot egy nappal növelni a Java használatával. A Java 8 előtt a szokásos Java dátum és idő könyvtárak nem voltak túl felhasználóbarátak. Ezért a Joda-Time a Java 8 előtti de facto szabványos dátum- és időkönyvtárává vált.

Vannak más osztályok és könyvtárak is, amelyek felhasználhatók a feladat végrehajtására, például java.util.Naptár és az Apache Commons.

A Java 8 tartalmazott egy jobb dátum és idő API-t a régebbi könyvtárak hiányosságainak orvoslására.

Ezért nézzük hogyan lehet a dátumot egy nappal növelni a Java 8, Joda-Time API, Java használatával Naptár osztály és az Apache Commons könyvtár.

2. Maven-függőségek

A következő függőségeket kell felvenni a programba pom.xml fájl:

  joda-time joda-time 2.10 org.apache.commons commons-lang3 3.5 

Megtalálja a Joda-Time legújabb verzióját a Maven Centralon, valamint az Apache Commons Lang legújabb verzióját is.

3. Használata java.time

A java.time.LocalDate osztály változhatatlan dátum-idő reprezentáció, amelyet gyakran év-hónap-napnak tekintenek.

LocalDate sok módszer van a dátummanipulációra, nézzük meg, hogyan használhatjuk fel ugyanezen feladat végrehajtására:

public static String addOneDay (String date) {return LocalDate .parse (date) .plusDays (1) .toString (); }

Ebben a példában használjuk java.time.LocalDate osztály és annak plusDays () módszer a dátum egy nappal történő növelésére.

Most ellenőrizzük, hogy ez a módszer a várt módon működik-e:

@Test public void givenDate_whenUsingJava8_thenAddOneDay () dobja a {String incrementedDate = addOneDay ("2018-07-03") kivételt; assertEquals ("2018-07-04", incrementedDate); }

4. Használata java.util.Naptár

Egy másik megközelítés az java.util.Naptár és annak add () módszer a dátum növelésére.

Használjuk együtt java.text.SimpleDateFormat dátumformázási célokra:

public static String addOneDayCalendar (karakterlánc dátuma) dobja a ParseException {SimpleDateFormat sdf = új SimpleDateFormat ("éééé-hh-dd"); Naptár c = Naptár.getInstance (); c.setTime (sdf.parse (dátum)); c.add (Naptár.DÁTUM, 1); return sdf.format (c.getTime ()); }

java.text.SimpleDateFormat van-e biztosítva a várható dátumformátum használatát. A dátum a add () módszer.

Ismét győződjünk meg arról, hogy ez a megközelítés rendeltetésszerűen működik:

@Test public void givenDate_whenUsingCalendar_thenAddOneDay () dobja a (z) {String incrementedDate = addOneDayCalendar ("2018-07-03") kivételt; assertEquals ("2018-07-04", incrementedDate); }

5. A Joda-Time használata

A org.joda.time.DateTime osztály számos módszerrel rendelkezik, amelyek segítenek a dátum és az idő megfelelő kezelésében.

Nézzük meg, hogyan használhatjuk a dátum egy nappal történő növelésére:

public static String addOneDayJodaTime (String date) {DateTime dateTime = new DateTime (date); return dateTime .plusDays (1) .toString ("éééé-hh-nn"); }

Itt használjuk org.joda.time.DateTime osztály és annak plusDays () módszer a dátum egy nappal történő növelésére.

A következő egységteszt segítségével ellenőrizhetjük, hogy a fenti kód működik-e:

@Test public void givenDate_whenUsingJodaTime_thenAddOneDay () dobja a Kivételt {String incrementedDate = addOneDayJodaTime ("2018-07-03"); assertEquals ("2018-07-04", incrementedDate); }

6. Használata Apache Commons

Egy másik könyvtár, amelyet dátummanipulációra használnak (többek között), az Apache Commons. Ez egy sor segédprogram, amely körülveszi a java.util.Naptár és java.util.Dátum tárgyakat.

Feladatunkhoz használhatjuk a org.apache.commons.lang3.time.DateUtils osztály és annak addDays () módszer (vegye figyelembe, hogy SimpleDateFormat dátumformázáshoz):

public static String addOneDayApacheCommons (String date) dobja a ParseException {SimpleDateFormat sdf = new SimpleDateFormat ("éééé-HH-nn"); Dátum incrementedDate = DateUtils .addDays (sdf.parse (dátum), 1); return sdf.format (incrementedDate); }

Szokás szerint az egységellenőrzéssel ellenőrizzük az eredményeket:

@Test public void givenDate_whenUsingApacheCommons_thenAddOneDay () dobja a Kivételt {String incrementedDate = addOneDayApacheCommons ("2018-07-03"); assertEquals ("2018-07-04", incrementedDate); }

7. Következtetés

Ebben a gyors cikkben különféle megközelítéseket tekintettünk meg a dátum egy nappal történő növelésének egyszerű feladatának kezelésére. Bemutattuk, hogyan lehet megvalósítani a Java alapvető API-jai, valamint néhány népszerű harmadik fél könyvtár segítségével.

Az ebben a cikkben használt kódminták a GitHub oldalon találhatók.


$config[zx-auto] not found$config[zx-overlay] not found