Dátum prírastku v Jave

1. Prehľad

V tomto výučbe sa pozrieme na spôsoby, ako pomocou Java zväčšiť dátum o jeden deň. Pred programom Java 8 neboli štandardné knižnice dátumu a času Java veľmi užívateľsky prívetivé. Preto sa Joda-Time stal de facto štandardnou knižnicou dátumu a času pre Javu pred Javou 8.

Na splnenie úlohy existujú napríklad aj iné triedy a knižnice java.util.Calendar a Apache Commons.

Java 8 obsahovala lepšie API dátumu a času na riešenie nedostatkov svojich starších knižníc.

Preto sa pozeráme na ako zvýšiť dátum o jeden deň pomocou Java 8, Joda-Time API, Java Kalendár triedy a knižnica Apache Commons.

2. Maven závislosti

Nasledujúce závislosti by mali byť súčasťou pom.xml spis:

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

Najnovšiu verziu Joda-Time nájdete na serveri Maven Central a tiež najnovšiu verziu Apache Commons Lang.

3. Používanie java.time

The java.time.LocalDate trieda je nemenná reprezentácia dátumu a času, často sa považuje za rok-mesiac-deň.

LocalDate má veľa metód na manipuláciu s dátumom, pozrime sa, ako ho môžeme použiť na splnenie rovnakej úlohy:

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

V tomto príklade používame java.time.LocalDate trieda a jej plusDays () metóda na zvýšenie dátumu o jeden deň.

Teraz si overme, či táto metóda funguje podľa očakávania:

@Test public void givenDate_whenUsingJava8_thenAddOneDay () vyvolá výnimku {String incrementedDate = addOneDay ("2018-07-03"); assertEquals ("04.07.2018", incrementedDate); }

4. Používanie java.util.Calendar

Ďalším prístupom je použitie java.util.Calendar a jeho pridať () metóda na zvýšenie dátumu.

Použijeme ho spolu s java.text.SimpleDateFormat pre účely formátovania dátumu:

public static String addOneDayCalendar (String date) throws ParseException {SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-MM-dd"); Kalendár c = Calendar.getInstance (); c.setTime (sdf.parse (dátum)); c.add (Calendar.DATE, 1); návrat sdf.format (c.getTime ()); }

java.text.SimpleDateFormat slúži na zabezpečenie použitia očakávaného formátu dátumu. Dátum sa predlžuje prostredníctvom pridať () metóda.

Ešte raz sa uistite, či tento prístup funguje podľa očakávaní:

@Test public void givenDate_whenUsingCalendar_thenAddOneDay () vyvolá výnimku {String incrementedDate = addOneDayCalendar ("2018-07-03"); assertEquals ("04.07.2018", incrementedDate); }

5. Používanie Joda-Time

The org.joda.time.DateTime trieda má veľa metód, ktoré pomáhajú správne narábať s dátumom a časom.

Pozrime sa, ako ho môžeme použiť na zväčšenie dátumu o jeden deň:

verejný statický reťazec addOneDayJodaTime (dátum reťazca) {DateTime dateTime = nový DateTime (dátum); návrat dateTime .plusDays (1) .toString ("rrrr-MM-dd"); }

Tu používame org.joda.time.DateTime trieda a jej plusDays () metóda na zvýšenie dátumu o jeden deň.

Môžeme overiť, že vyššie uvedený kód funguje pomocou nasledujúceho testu jednotky:

@Test public void givenDate_whenUsingJodaTime_thenAddOneDay () vyvolá výnimku {String incrementedDate = addOneDayJodaTime ("2018-07-03"); assertEquals ("04.07.2018", incrementedDate); }

6. Používanie Apache Commons

Ďalšou knižnicou bežne používanou na manipuláciu s dátumami (okrem iného) je Apache Commons. Je to sada nástrojov obklopujúcich použitie java.util.Calendar a java.util.Date predmety.

Na našu úlohu môžeme použiť org.apache.commons.lang3.time.DateUtils trieda a jej addDays () metóda (všimnite si, že SimpleDateFormat sa opäť používa na formátovanie dátumu):

public static String addOneDayApacheCommons (String date) throws ParseException {SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-MM-dd"); Date incrementedDate = DateUtils .addDays (sdf.parse (date), 1); návrat sdf.format (incrementedDate); }

Ako obvykle, výsledky overíme jednotkovým testom:

@Test public void givenDate_whenUsingApacheCommons_thenAddOneDay () vyvolá výnimku {String incrementedDate = addOneDayApacheCommons ("2018-07-03"); assertEquals ("04.07.2018", incrementedDate); }

7. Záver

V tomto rýchlom článku sme sa pozreli na rôzne prístupy k riešeniu jednoduchej úlohy zvyšovania dátumu o jeden deň. Ukázali sme, ako je to možné dosiahnuť pomocou základných rozhraní API Java, ako aj niektorých populárnych knižníc tretích strán.

Ukážky kódu použité v tomto článku nájdete na GitHub.


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