כיצד לקבוע את יום השבוע על ידי העברת תאריך ספציפי בג'אווה?

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

במדריך קצר זה נראה כיצד לחלץ את יום השבוע כמספר וכטקסט מתאריך Java.

2. בעיה

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

אז איך נפיק את היום בשבוע מהתאריכים בג'אווה?

3. פיתרון עם java.util.Date

java.util.Date היה מחלקת התאריכים של Java מאז Java 1.0. קוד שהתחיל עם Java גרסה 7 ומטה כנראה משתמש במחלקה זו.

3.1. יום השבוע כמספר

ראשון, אנו מחלצים את היום כמספר באמצעות java.util.Calendar:

intic public intic getDayNumberOld (תאריך תאריך) {Calendar cal = Calendar.getInstance (); cal.setTime (תאריך); החזר cal.get (לוח שנה. DAY_OF_WEEK); }

כתוצאה מכך המספר נע בין 1 (ראשון) ל -7 (שבת). לוּחַ שָׁנָה מגדיר קבועים לכך: לוח שנה. יום ראשוןלוח שנה. יום שבת.

3.2. יום השבוע כטקסט

עכשיו אנחנו לחלץ את היום כטקסט. אנחנו עוברים ב אזור לקביעת השפה:

מחרוזת סטטית ציבורית getDayStringOld (תאריך תאריך, אזור מקומי) {DateFormat מעצב = חדש SimpleDateFormat ("EEEE", אזור); פורמט החזרה. פורמט (תאריך); }

זֶה מחזיר את היום המלא בשפה שלך, כגון "יום שני" באנגלית או "מונטג" בגרמנית.

4. פיתרון עם java.time.LocalDate

Java 8 שיפץ את התאריך והשעה והוצג java.time.LocalDate לדייטים. לָכֵן, פרויקטים של Java הפועלים רק בג'אווה גרסאות 8 ומעלה צריכים להשתמש במחלקה זו!

4.1. יום השבוע כמספר

חילוץ היום כמספר הוא טריוויאלי עַכשָׁיו:

intic public static get getDayNumberNew (תאריך LocalDate) {DayOfWeek day = date.getDayOfWeek (); day return.getValue (); }

המספר המתקבל עדיין נע בין 1 ל- 7. אבל הפעם, יום שני הוא 1 וראשון הוא 7! ה ליום השבוע יש משלו enumיום בשבוע. כצפוי, enum ערכים הם יוֹם שֵׁנִייוֹם רִאשׁוֹן.

4.2. יום השבוע כטקסט

עכשיו אנו מחלצים את היום כטקסט. אנחנו גם עוברים ב אזור:

מחרוזת סטטית ציבורית getDayStringNew (תאריך LocalDate, אזור מקומי) {DayOfWeek day = date.getDayOfWeek (); return day.getDisplayName (TextStyle.FULL, locale); }

בדיוק כמו עם java.util.Date, זה מחזיר את היום המלא בשפה הנבחרת.

5. מסקנה

במאמר זה חילצנו את יום השבוע מתאריכי Java. ראינו כיצד להחזיר גם מספר וגם טקסט באמצעות java.util.Date ו java.time.LocalDate.

כמו תמיד, הקוד זמין ב- GitHub.