כיצד להתחיל את ההתחלה ואת סוף היום באמצעות Java

1. סקירה כללית

במדריך הקצר הזה, נלמד כיצד להתחיל את תחילתו ואת סופו של יום בג'אווה, תוך שימוש בדוגמאות פשוטות ופשוטות לתרחישים שונים.

נשתמש ב- API של 8 תאריך / שעה של Java לבניית דוגמאות אלה.

במקרה שתרצה לקרוא קצת יותר על ספריית 8 התאריכים והשעה של Java לפני שתמשיך, תוכל להתחיל כאן.

2. מתוך א LocalDate לְהִתְנַגֵד

קודם כל, בואו נראה איך נוכל להתחיל או לסיים את היום שניתן לנו כ- LocalDate אובייקט, כגון:

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

2.1. atStartOfDay ()

הדרך הפשוטה ביותר להשיג LocalDateTime המייצג את תחילתו של יום מסוים הוא באמצעות atStartOfDay () שיטה:

LocalDateTime startOfDay = localDate.atStartOfDay ();

שיטה זו עמוסה יתר על המידה, ולכן במקרה שנרצה להשיג ZonedDateTime מתוך זה, אנו יכולים לעשות זאת על ידי ציון ה- ZoneId:

ZonedDateTime startOfDay = localDate.atStartOfDay (ZoneId.of ("אירופה / פריז"));

2.2. שֶׁל()

דרך נוספת בה אנו יכולים להשיג את אותה תוצאה היא באמצעות ה- שֶׁל() שיטה, מתן LocalDate ואחד מה זמן מקומישדות סטטיים:

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

זמן מקומי מציע את השדות הסטטיים הבאים: חצות (00:00), MIN (00:00), צָהֳרַיִים (12:00), ו מקס(23:59:59.999999999).

לכן, אם אנו רוצים להגיע לסוף היום, נשתמש ב- מקס ערך.

בואו ננסה את זה, אבל בשיטה אחרת.

2.3. בזמן()

שיטה זו עמוסה יתר על המידה, ומאפשרת לנו לציין את הזמן הרצוי באמצעות שעות, דקות, שניות או אפילו ננו-שניות.

במקרה זה, בכל מקרה, נשתמש ב- זמן מקומישל מקס שדה כטיעון להשיג את הרגע האחרון של היום הנתון:

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

2.4. atDate ()

דוגמה זו די דומה לקודמות, אך הפעם נשתמש ב- atDate () שיטת א זמן מקומי אובייקט, מעביר את LocalDate כטענה:

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

3. מתוך א LocalDateTime לְהִתְנַגֵד

זה כמעט מובן מאליו שאנחנו יכולים להשיג את LocalDate ממנו ואז השתמש באחת מהשיטות בסעיף 2 כדי לקבל ממנו את סוף או תחילת היום:

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

אך בחלק זה ננתח שיטה אחת נוספת כדי להשיג את האובייקט כאשר קטע הזמן שלו מוגדר לתחילת או לסוף היום, ישירות מנתון אחר LocalDateTime לְהִתְנַגֵד.

3.1. עם()

כל הכיתות המיישמות את ממשק זמני יכול להשתמש בשיטה זו.

במקרה זה נשתמש בחתימה של השיטה שלוקחת א TemporalField (ראוי לציין, אחד מ- ChronoField Enum ערכים) וא ארוך ארגומנט כערך החדש של השדה:

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

4. מתוך א ZonedDateTime לְהִתְנַגֵד

אם נותנים לנו ZonedDateTime, אנחנו יכולים להשתמש ב- עם() שיטה שכן היא מיישמת את ממשק זמני גם כן:

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

5. מסקנה

לסיכום, ניתחנו הרבה דרכים שונות להתחלה ולסיום של יום בג'אווה עבור תרחישים רבים ומגוונים.

לבסוף למדנו על התובנות של 8 שיעורי ספריית התאריכים והשעה של ג'אווה והכרנו רבים מהשיעורים והממשקים שלה.

כמו תמיד, ניתן לגשת לכל הדוגמאות במאגר GitHub שלנו.


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