Hogyan kezdhetjük el a nap kezdetét és végét a Java használatával

1. Áttekintés

Ebben a rövid bemutatóban megtanuljuk, hogyan lehet a Java kezdetét és végét elérni, egyszerű, egyértelmű példákat használva a különböző forgatókönyvekhez.

A Java 8 Date / Time API-ját fogjuk használni ezeknek a példáknak a felépítéséhez.

Ha folytatni szeretne egy kicsit többet a Java 8 dátum és idő könyvtáráról, itt kezdheti el.

2. A-tól LocalDate Tárgy

Először is nézzük meg, hogyan érhetjük el a nekünk adott nap kezdetét vagy végét LocalDate tárgy, például:

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

2.1. atStartOfDay ()

A megszerzés legegyszerűbb módja a LocalDateTime egy adott nap kezdetét a atStartOfDay () módszer:

LocalDateTime startOfDay = localDate.atStartOfDay ();

Ez a módszer túlterhelt, így abban az esetben, ha a ZonedDateTime belőle megtehetjük a ZoneId:

ZonedDateTime startOfDay = localDate.atStartOfDay (ZoneId.of ("Európa / Párizs"));

2.2. nak,-nek()

A másik módszer, amellyel ugyanazt az eredményt érhetjük el, a nak,-nek() módszer, biztosítva a LocalDate és az egyik Helyi időStatikus mezői:

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

Helyi idő a következő statikus mezőket kínálja: ÉJFÉL (00:00), MIN (00:00), DÉL (12:00), és MAX(23:59:59.999999999).

Ezért, ha szeretnénk elérni a nap végét, használnánk a MAX érték.

Próbáljuk ki, de más módszerrel.

2.3. időben()

Ez a módszer túlterhelt, így órák, percek, másodpercek vagy akár nanoszekundumok segítségével megadhatjuk a kívánt időt.

Ebben az esetben egyébként is a Helyi idő’S MAX mező, mint argumentum az adott nap utolsó pillanatának megszerzéséhez:

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

2.4. atDate ()

Ez a példa meglehetősen hasonló az előzőekhez, de ezúttal a atDate () módszer a Helyi idő objektum, elhaladva a LocalDate érvként:

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

3. A-tól LocalDateTime Tárgy

Szinte magától értetődik, hogy megszerezhetjük a LocalDate belőle, majd használja a 2. szakasz bármelyik módszerét a nap végének vagy kezdetének megszerzéséhez:

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

De ebben a szakaszban egy másik módszert elemzünk, amellyel az objektumot úgy kapjuk meg, hogy az időszakasza a nap kezdetére vagy végére van állítva, közvetlenül egy másiktól LocalDateTime tárgy.

3.1. val vel()

A programot végrehajtó összes osztály Időbeli felület használhatja ezt a módszert.

Ebben az esetben a metódus aláírását fogjuk használni, amely a TemporalField (nevezetesen az egyik ChronoField Enum értékek) és a hosszú argumentum a mező új értékeként:

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

4. A-tól ZonedDateTime Tárgy

Ha kapunk egy ZonedDateTime, használhatjuk a val vel() módszer, mivel végrehajtja a Időbeli felület is:

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

5. Következtetés

Összefoglalva: sok különböző módszert elemeztünk a Java napjának kezdetének és végének megszerzésére, sokféle esetre.

Végül megismerhettük a Java 8 dátum és idő könyvtár osztályának betekintését, és megismerhettük számos osztályát és felületét.

Mint mindig, az összes példa elérhető a GitHub adattárunkban.