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.