המרת זמן למילי-שניות בג'אווה

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.