Ako získať začiatok a koniec dňa pomocou Java

1. Prehľad

V tomto krátkom návode naučíme sa, ako získať začiatok a koniec dňa v Javepomocou jednoduchých a priamych príkladov pre rôzne scenáre.

Na zostavenie týchto príkladov použijeme Java 8 API Date / Time.

Ak si chcete predtým prečítať niečo viac o knižnici Java 8 Date and Time, môžete začať tu.

2. Od a LocalDate Objekt

Najskôr sa pozrime, ako môžeme dosiahnuť začiatok alebo koniec dňa, ktorý nám bol daný ako LocalDate objekt, napríklad:

LocalDate localDate = LocalDate.parse ("2018-06-23");

2.1. atStartOfDay ()

Najjednoduchší spôsob, ako získať LocalDateTime predstavujúci začiatok konkrétneho dňa je pomocou atStartOfDay () metóda:

LocalDateTime startOfDay = localDate.atStartOfDay ();

Táto metóda je preťažená, teda v prípade, že chceme dostať a ZonedDateTime z toho môžeme urobiť uvedením ZoneId:

ZonedDateTime startOfDay = localDate.atStartOfDay (ZoneId.of ("Európa / Paríž"));

2.2. z ()

Ďalším spôsobom, ako môžeme dosiahnuť rovnaký výsledok, je použitie z () metóda, poskytujúca a LocalDate a jeden z Miestny časStatické polia:

LocalDateTime startOfDay = LocalDateTime.of (localDate, LocalTime.MIDNIGHT);

Miestny čas ponúka nasledujúce statické polia: Polnoci (00:00), MIN (00:00), Poludnie (12:00) a MAX(23:59:59.999999999).

Preto, ak chceme dostať koniec dňa, použijeme MAX hodnotu.

Skúsme to, ale s inou metódou.

2.3. v čase()

Táto metóda je preťažená, čo nám umožňuje určiť požadovaný čas pomocou hodín, minút, sekúnd alebo dokonca nanosekúnd.

V tomto prípade každopádne použijeme Miestny čas‘S MAX pole ako argument na získanie posledného okamihu daného dňa:

LocalDateTime startOfDay = localDate.atTime (LocalTime.MAX);

2.4. atDate ()

Tento príklad je dosť podobný predchádzajúcim, ale tentokrát použijeme atDate () metóda a Miestny čas objekt, prechádzajúci okolo LocalDate ako argument:

LocalDateTime endOfDate = LocalTime.MAX.atDate (localDate);

3. Od a LocalDateTime Objekt

Je takmer samozrejmé, že môžeme získať LocalDate a potom použite ktorúkoľvek z metód uvedených v časti 2, aby ste z nej dostali koniec alebo začiatok dňa:

LocalDateTime localDateTime = LocalDateTime .parse ("2018-06-23T05: 55: 55"); LocalDateTime endOfDate = localDateTime .toLocalDate (). AtTime (LocalTime.MAX);

Ale v tejto časti budeme analyzovať jednu ďalšiu metódu na získanie objektu s jeho časovou časťou nastavenou na začiatok alebo na koniec dňa, priamo z inej danej LocalDateTime objekt.

3.1. s ()

Všetky triedy implementujúce Časové rozhranie môže použiť túto metódu.

V tomto prípade použijeme podpis metódy, ktorá trvá a TemporalField (predovšetkým jeden z ChronoField Enum hodnoty) a a dlho argument ako nová hodnota poľa:

LocalDateTime endOfDate = localDateTime.with (ChronoField.NANO_OF_DAY, LocalTime.MAX.toNanoOfDay ());

4. Od a ZonedDateTime Objekt

Ak dostaneme a ZonedDateTime, môžeme použiť s () metóda, pretože implementuje Časové rozhranie tiež:

ZonedDateTime startofDay = zonedDateTime.with (ChronoField.HOUR_OF_DAY, 0);

5. Záver

Ak to zhrnieme, analyzovali sme veľa rôznych spôsobov, ako získať začiatok a koniec dňa v prostredí Java, a to pre rôzne scenáre.

Na záver sme sa dozvedeli o poznatkoch 8 tried knižnice Java a dátumov a oboznámili sme sa s mnohými jeho triedami a rozhraniami.

Ako vždy, všetky príklady sú prístupné v našom úložisku GitHub.


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