Datum povećanja u Javi

1. Pregled

U ovom ćemo uputstvu pogledati načine za povećanje datuma za jedan dan pomoću Jave. Prije Jave 8, standardne Java knjižnice datuma i vremena nisu bile vrlo jednostavne za upotrebu. Stoga je Joda-Time postala de facto standardna knjižnica datuma i vremena za Javu prije Java 8.

Postoje i drugi razredi i knjižnice koji bi se mogli koristiti za izvršavanje zadatka, poput java.util.Kalendar i Apache Commons.

Java 8 sadržavao je bolji API za datum i vrijeme za rješavanje nedostataka svojih starijih knjižnica.

Stoga gledamo kako povećati datum za jedan dan koristeći Java 8, Joda-Time API, Java Kalendar razreda i biblioteke Apache Commons.

2. Ovisnosti Mavena

Sljedeće ovisnosti trebaju biti uključene u pom.xml datoteka:

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

Najnoviju verziju Joda-Time možete pronaći na Maven Central, a također i najnoviju verziju Apache Commons Lang.

3. Korištenje java.vrijeme

The java.time.LocalDate razred je nepromjenjiv prikaz datuma i vremena, često promatran kao godina-mjesec-dan.

LocalDate ima mnogo metoda za manipulaciju datumima, pogledajmo kako to možemo koristiti za postizanje istog zadatka:

javni statički niz addOneDay (datum niza) {return LocalDate .parse (datum) .plusDays (1) .toString (); }

U ovom primjeru koristimo java.time.LocalDate razreda i svoje plusDays () metoda za povećavanje datuma za jedan dan.

Sada, provjerimo radi li ova metoda kako se očekivalo:

@Test public void givenDate_whenUsingJava8_thenAddOneDay () baca izuzetak {String incrementedDate = addOneDay ("03.07.2018."); assertEquals ("04.07.2018., uvećaniDatum); }

4. Korištenje java.util.Kalendar

Drugi pristup je korištenje java.util.Kalendar I je dodati() metoda za povećanje datuma.

Koristit ćemo ga zajedno s java.text.SimpleDateFormat za formatiranje datuma:

javni statički String addOneDayCalendar (datum niza) baca ParseException {SimpleDateFormat sdf = novi SimpleDateFormat ("yyyy-MM-dd"); Kalendar c = Calendar.getInstance (); c.setTime (sdf.parse (datum)); c.add (Calendar.DATE, 1); vratiti sdf.format (c.getTime ()); }

java.text.SimpleDateFormat postoji li kako bi se osiguralo da se koristi format očekivanog datuma. Datum se povećava putem dodati() metoda.

Još jednom, pobrinimo se da ovaj pristup funkcionira kako je predviđeno:

@Test public void givenDate_whenUsingCalendar_thenAddOneDay () baca iznimku {String incrementedDate = addOneDayCalendar ("03.07.2018."); assertEquals ("04.07.2018., uvećaniDatum); }

5. Korištenje Joda-Timea

The org.joda.time.DateTime razred ima mnogo metoda koje pomažu u ispravnom rješavanju datuma i vremena.

Pogledajmo kako ga možemo koristiti za povećavanje datuma za jedan dan:

javni statički niz addOneDayJodaTime (datum niza) {DateTime dateTime = novi datum (Time); vrati datumTime .plusDays (1) .toString ("yyyy-MM-dd"); }

Evo, koristimo org.joda.time.DateTime razreda i svoje plusDays () metoda za povećavanje datuma za jedan dan.

Možemo provjeriti funkcionira li gornji kod sa sljedećim jediničnim testom:

@Test public void givenDate_whenUsingJodaTime_thenAddOneDay () baca iznimku {String incrementedDate = addOneDayJodaTime ("03.07.2018."); assertEquals ("04.07.2018., uvećaniDatum); }

6. Korištenje Apache Commons

Druga biblioteka koja se obično koristi za manipulaciju datumima (između ostalog) je Apache Commons. To je paket uslužnih programa koji okružuju upotrebu java.util.Kalendar i java.util.Datum predmeta.

Za naš zadatak možemo koristiti org.apache.commons.lang3.time.DateUtils razreda i svoje addDays () metoda (imajte na umu da SimpleDateFormat ponovno se koristi za formatiranje datuma):

javni statički niz addOneDayApacheCommons (datum niza) baca ParseException {SimpleDateFormat sdf = novi SimpleDateFormat ("yyyy-MM-dd"); Datum incrementedDate = DateUtils .addDays (sdf.parse (datum), 1); vrati sdf.format (crementedDate); }

Kao i obično, rezultate ćemo provjeriti jediničnim testom:

@Test public void givenDate_whenUsingApacheCommons_thenAddOneDay () baca iznimku {String incrementedDate = addOneDayApacheCommons ("03.07.2018."); assertEquals ("04.07.2018., uvećaniDatum); }

7. Zaključak

U ovom smo kratkom članku pogledali različite pristupe rješavanju jednostavnog zadatka povećavanja datuma za jedan dan. Pokazali smo kako se to može postići upotrebom osnovnih Java-ovih API-ja, kao i nekih popularnih knjižnica trećih strana.

Uzorci koda korišteni u ovom članku mogu se naći na GitHubu.


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