Práca s dátumami v Kotline
1. Úvod
V tomto rýchlom výučbe sa dozvieme o práci s dátumami v Kotline.
Budeme sa na to pozerať Dátum-súvisiace operácie, ako je vytváranie, formátovanie a manipulácia s dátumami.
2. Vytvorenie dátumu
Najrýchlejší spôsob vytvorenia a Dátum objekt používa LocalDate‘S analyzovať () metóda:
var date = LocalDate.parse ("12.12.2018")
The analyzovať () metóda predvolene používa štandardný formát dátumu rrrr-MM-dd.
Môžeme tiež odovzdať náš vlastný formát na analýzu reťazca dátumu:
var formatter = DateTimeFormatter.ofPattern ("dd-MM-rrrr") var date = LocalDate.parse ("31-12-2018", formátovač)
A ak potrebujeme väčšiu kontrolu, môžeme výslovne uviesť rok, deň a mesiac použitím LocalDate‘S z () metóda:
var date = LocalDate.of (2018, 12, 31)
3. Formátovanie dátumu
Ďalej sa pozrime, ako môžeme naformátovať naše objekty dátumu späť Struny.
Predvolený spôsob formátovania dátumu pomocou predvoleného formátu v Kotlin sa odvoláva na metóda toString ().
Vytvorme si rande
var date = LocalDate.parse ("2018-12-31")
a pozrite sa na predvolený výstup použitia natiahnuť:
assertThat (date.toString ()). isEqualTo ("2018-12-31")
Zdá sa to čitateľné, pretože výstupný formát je rrrr-MM-dd, ale znova bude pravdepodobne potrebné formátovať dátum do vlastných formátov v závislosti od našich prípadov použitia.
Na formátovanie nášho dátumu do rôznych formátov môžeme použiť LocalDate‘S formát () metóda a dodáme mu náš vlastný formát pomocou DateTimeFormatter:
var formatter = DateTimeFormatter.ofPattern ("dd-MMMM-rrrr") var formattedDate = date.format (formátovač)
Takto sa zobrazí pekne naformátovaný dátum:
assertThat (formattedDate) .isEqualTo („31. decembra 2018“)
4. Extrakcia komponentov dátumu
LocalDate poskytuje mnoho metód, z ktorých môžeme extrahovať konkrétne komponenty Dátum.
Niektoré z nich sú dosť malicherné, napríklad vyťaženie roku, mesiaca alebo dňa z čísla a Dátum:
var date = LocalDate.parse ("2018-12-31") assertThat (date.year) .isEqualTo (2018) assertThat (date.month) .isEqualTo (Month.DECEMBER) assertThat (date.dayOfMonth) .isEqualTo (31)
Môžeme tiež extrahovať ďalšie informácie, napríklad era, dayOfTheWeek alebo dayOfTheMonth:
assertThat (date.era.toString ()). isEqualTo ("CE") assertThat (date.dayOfWeek) .isEqualTo (DayOfWeek.MONDAY) assertThat (date.dayOfYear) .isEqualTo (365)
5. Spolupráca s Obdobie
Na záver sa pozrime na spoluprácu Obdobia v Kotline.
Obdobia predstavujú vzdialenosť na časovej osi. Môžeme vytvoriť Obdobie použitím ObdobieTriedna továrenská metóda:
var period = Period.of (1, 2, 3)
Tak vznikne a Obdobie 1 rok, 2 mesiace a 3 dni.
Ak chcete pridať toto Obdobie k existujúcemu dátumu používame LocalDate‘S plus() metóda:
var date = LocalDate.of (2018, 6, 25) var modifiedDate = date.plus (obdobie)
Týmto sa k uvedenému dátumu pridá 1 rok, 2 mesiace a 3 dni a vytvorí sa upravený dátum:
assertThat (modifiedDate) .isEqualTo ("2019-08-28")
Podobne môžeme odpočítať a Obdobie od daného dátumu:
var date = LocalDate.of (2018, 6, 25) var modifiedDate = date.minus (obdobie)
Podľa očakávania bude upravený dátum:
assertThat (modifiedDate) .isEqualTo ("2017-04-22")
Môžeme tiež použiť Periódy na vyjadrenie vzdialenosti medzi dvoma dátumami.
Predpokladajme, že máme dva dátumy, presne od seba vzdialené 6 mesiacov:
var date1 = LocalDate.parse ("2018-06-25") var date2 = LocalDate.parse ("2018-12-25")
Teraz môžeme vzdialenosť medzi týmito dvoma dátumami reprezentovať pomocou obdobia medzi metóda:
var period = Obdobie.medzi (dátum1, dátum2)
The obdobie premenná vyprodukuje nasledujúce:
assertThat (period.toString ()). isEqualTo ("P6M")
P znamenať Obdobie a 6 mil znamená 6 mesiacov.
6. Záver
V tomto článku sme sa naučili základy práce s Datesom v Kotline.
Pozreli sme sa na to, ako pomocou rôznych metód vytvárať inštancie dátumu a ako formátovať objekty dátumu späť do čitateľných textov.
Ďalej sme sa zamerali na extrakciu komponentov z Dátum predmety a nakoniec ako s nimi pracovať Obdobia v Kotline.
Kód použitý v tejto príručke je k dispozícii na GitHub.