Rad s datumima u Kotlinu

1. Uvod

U ovom brzom vodiču naučit ćemo o radu s datumima u Kotlinu.

Istražit ćemo Datum-povezane operacije poput stvaranja, oblikovanja i manipuliranja datumima.

2. Izrada datuma

Najbrži način za stvaranje a Datum objekt koristi LocalDate‘S raščlaniti () metoda:

var datum = LocalDate.parse ("12.12.2018.")

The raščlaniti () metoda prema zadanim postavkama koristi standardni format datuma gggg-MM-dd.

Također možemo proslijediti vlastiti format za raščlanjivanje niza datuma:

var formatter = DateTimeFormatter.ofPattern ("dd-MM-yyyy") var date = LocalDate.parse ("31-12-2018", formatter)

A ako trebamo veću kontrolu možemo izričito navesti godina, dan i mjesec koristeći LocalDate‘S od() metoda:

var datum = LocalDate.of (2018, 12, 31)

3. Oblikovanje datuma

Dalje, pogledajmo kako možemo formatirati svoje datumske objekte natrag Žice.

Zadani način oblikovanja datuma pomoću zadanog formata u Kotlin se poziva na metoda toString ().

Stvorimo datum

var datum = LocalDate.parse ("31.12.2018.")

i pogledajte zadani izlaz korištenja toString:

assertThat (date.toString ()). isEqualTo ("31.12.2018.")

Ovo izgleda čitljivo kao što je izlazni format gggg-MM-dd, ali opet, možda ćemo trebati formatirati datum u prilagođene formate, ovisno o našim slučajevima korištenja.

Da bismo formatirali svoj datum u različite formate koje možemo koristiti LocalDate‘S format() metoda i isporučiti mu naš prilagođeni format koristeći DateTimeFormatter:

var formatter = DateTimeFormatter.ofPattern ("dd-MMMM-yyyy") var formattedDate = date.format (formatter)

Ovo daje lijepo oblikovan datum:

assertThat (formattedDate) .isEqualTo ("31. prosinca 2018.")

4. Izdvajanje komponenata datuma

LocalDate pruža mnoge metode pomoću kojih možemo izdvojiti određene komponente Datum.

Neki od njih su prilično trivijalni, poput izdvajanja godine, mjeseca ili dana iz a Datum:

var datum = LocalDate.parse ("2018-12-31") assertThat (date.year) .isEqualTo (2018) assertThat (date.month) .isEqualTo (Month.DECEMBER) assertThat (date.dayOfMonth) .isEqualTo (31)

Možemo izvući i druge podatke poput era, dayOfTheWeek ili dayOfTheMonth:

assertThat (date.era.toString ()). isEqualTo ("CE") assertThat (date.dayOfWeek) .isEqualTo (DayOfWeek.MONDAY) assertThat (date.dayOfYear) .isEqualTo (365)

5. Rad s Razdoblje

Napokon, pogledajmo u radu s Razdoblja u Kotlinu.

Razdoblja predstavljaju udaljenost na vremenskoj traci. Možemo stvoriti Razdoblje koristeći RazdobljeTvornička metoda klase:

var period = Razdoblje (1, 2, 3)

Ovo stvara a Razdoblje od 1 godine, 2 mjeseca i 3 dana.

Da ovo dodam Razdoblje do postojećeg datuma koristimo LocalDate‘S plus() metoda:

var datum = LocalDate.of (2018, 6, 25) var modifiedDate = date.plus (period)

To će dodati 1 godinu, 2 mjeseca i 3 dana na zadani datum i proizvesti izmijenjeni datum:

assertThat (modifiedDate) .isEqualTo ("28.08.2019")

Slično tome, možemo oduzeti a Razdoblje od određenog datuma:

var datum = LocalDate.of (2018, 6, 25) var modifiedDate = date.minus (period)

I kao što se očekivalo, izmijenjeni datum bit će:

assertThat (modifiedDate) .isEqualTo ("22.04.2017")

Također, Periode možemo koristiti za predstavljanje udaljenosti između dva datuma.

Pretpostavimo da imamo dva datuma, točno 6 mjeseci međusobno:

var date1 = LocalDate.parse ("25.06.2018") var date2 = LocalDate.parse ("2018-12-25")

Sada možemo predstaviti udaljenost između ova dva datuma pomoću Razdoblja između metoda:

var period = Razdoblje između (datum1, datum2)

The razdoblje varijabla će proizvesti sljedeće:

assertThat (period.toString ()). isEqualTo ("P6M")

Str stoji za Razdoblje i 6M znači 6 mjeseci.

6. Zaključak

U ovom smo članku naučili osnove rada s datumima u Kotlinu.

Istražili smo kako stvoriti instance datuma pomoću različitih metoda i kako formatirati objekte datuma natrag u čitljive tekstove.

Nadalje, proučavali smo izdvajanje komponenata iz Datum predmeta i konačno kako raditi Razdoblja u Kotlinu.

Kôd korišten u ovom vodiču dostupan je na GitHub-u.


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