המרת זמן למילי-שניות בג'אווה
1. סקירה כללית
במדריך המהיר הזה, נמחיש דרכים רבות להמרת זמן לאלפני שניות של יוניקס בג'אווה.
באופן ספציפי יותר נשתמש ב:
- ליבות Java java.util.Date ו לוּחַ שָׁנָה
- ממשק API של תאריך ושעה של Java 8
- ספריית Joda-Time
2. ליבת ג'אווה
2.1. באמצעות תַאֲרִיך
ראשית, בואו נגדיר א מיליס נכס שמחזיק בערך אקראי של אלפיות השנייה:
מיליס ארוך = 1556175797428L; // 25 באפריל, 2019 7: 03: 17.428 UTC
נשתמש בערך זה כדי לאתחל את האובייקטים השונים שלנו ולאמת את התוצאות שלנו.
לאחר מכן, נתחיל עם תַאֲרִיך לְהִתְנַגֵד:
תאריך תאריך = // פרטי יישום
עכשיו, אנחנו מוכנים להמיר את תַאֲרִיך לתוך אלפיות השנייה באמצעות פשוט הפעלת ה- getTime () שיטה:
Assert.assertEquals (מיליס, date.getTime ());
2.2. באמצעות לוּחַ שָׁנָה
כמו כן, אם יש לנו לוּחַ שָׁנָה אנו יכולים להשתמש ב- getTimeInMillis () שיטה:
לוח שנה לוח שנה = // פרטי יישום Assert.assertEquals (מיליס, לוח שנה.גטייםInMillis ());
3. Java 8 תאריך זמן API
3.1. באמצעות רֶגַע
פשוט שים, רֶגַע היא נקודה בציר הזמן של תקופת ג'אווה.
אנו יכולים להשיג את הזמן הנוכחי באלפיות השנייה רֶגַע:
java.time.Instant instant = // פרטי הטמעה Assert.assertEquals (מילי, instant.toEpochMilli ());
כתוצאה מכך, toEpochMilli () השיטה מחזירה את אותו מספר אלפיות השנייה כפי שהגדרנו קודם.
3.2. באמצעות LocalDateTime
באופן דומה, אנו יכולים להשתמש ב- API של תאריך ושעה של Java 8 כדי להמיר LocalDateTime לאלפיות השנייה:
LocalDateTime localDateTime = // פרטי היישום ZonedDateTime zdt = ZonedDateTime.of (localDateTime, ZoneId.systemDefault ()); Assert.assertEquals (millis, zdt.toInstant (). ToEpochMilli ());
ראשית, יצרנו מופע של התאריך הנוכחי. לאחר מכן השתמשנו ב- toEpochMilli () שיטה להמיר את ZonedDateTime לתוך אלפיות השנייה.
כידוע, LocalDateTime אינו מכיל מידע על אזור הזמן. במילים אחרות, אנחנו לא יכולים להשיג אלפיות שניות ישירות מ LocalDateTime למשל.
4. ג'ודה-טיים
בעוד שג'אווה 8 מוסיפה הרבה מהפונקציונליות של Joda-Time, ייתכן שנרצה להשתמש באפשרות זו אם אנחנו ב- Java 7 ואילך.
4.1. באמצעות רֶגַע
ראשית, אנו יכולים להשיג את המערכת הנוכחית אלפיות השנייה ג'ודה-טיים רֶגַע מופע בכיתה באמצעות getMillis () שיטה:
JodaInstant מיידי = // פרטי היישום Assert.assertEquals (millis, jodaInstant.getMillis ());
4.2. באמצעות תאריך שעה
בנוסף, אם יש לנו ג'ודה-טיים תאריך שעה למשל:
תאריך זמן jodaDateTime = // פרטי יישום
אז נוכל לאחזר את אלפיות השנייה עם ה- getMillis () שיטה:
Assert.assertEquals (מיליס, jodaDateTime.getMillis ());
5. מסקנה
לסיכום, מאמר זה מדגים כיצד להמיר זמן לאלפיות השנייה בג'אווה.
לבסוף, כמו תמיד, הקוד השלם למאמר זה זמין באתר GitHub.