JavaRush /Kurslar /All lectures for UZ purposes /DateTime API bilan ishlashda foydali nuanslar

DateTime API bilan ishlashda foydali nuanslar

All lectures for UZ purposes
Daraja, Dars
Mavjud

1. Klass LocalDateTime

Klass LocalDateTime o'zida LocalDate va LocalTime sinflarining imkoniyatlarini birlashtiradi: u sana va vaqtni saqlaydi. Uning obyektlari ham o'zgarmas, va uning metodlari ham LocalDate va LocalTime sinflarining metodlariga o'xshaydi.

Joriy vaqtni olish: sana va vaqt

Hammasi kutilganidek: bu yerda now() metodi ishlatiladi. Misol:

Kod Ekranga chiqarish
LocalDateTime time = LocalDateTime.now();
System.out.println("Hozir = " + time);

Hozir = 2019-02-22T09:49:19.275039200

Ekranga chiqishda sana va vaqt T harfi bilan ajraladi.

Muayyan vaqtning olinishi: sana va vaqt

Hammasi LocalDate va LocalTime sinflariga o'xshash — bu yerda of() metodi ishlatiladi:

... = LocalDateTime.of(yil, oy, kun, soat, daqiqa, soniya);

Avval parametrlar keladi, ular LocalDate klassidagi kabi sanani aniqlaydi. So'ngra, LocalTime klassidagi kabi vaqtni aniqlaydigan parametrlar keladi. of() metodining barcha variantlari ro'yxati:

Metodlar
of (int year, int month, int day, int hour, int minute)
of (int year, int month, int day, int hour, int minute, int second)
of (int year, int month, int day, int hour, int minute, int second, int nano)
of (int year, Month month, int day, int hour, int minute)
of (int year, Month month, int day, int hour, int minute, int second)
of (int year, Month month, int day, int hour, int minute, int second, int nano)
of (LocalDate date, LocalTime time)

Sanani aniq kiritish yoki LocalDate va LocalTime obyektlari orqali berish mumkin:

Kod
LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
LocalDateTime current = LocalDateTime.of(date, time);
System.out.println("Hozir = " + current);

LocalDateTime date = LocalDateTime.of(2019, Month.MAY, 15, 12, 15, 00);
System.out.println("Hozir = " + date);
Ekranga chiqarish
Hozir = 2019-02-22T10:05:38.465675100
Hozir = 2019-05-15T12:15

LocalDateTime klassida sana va/yo vaqt fragmentlarini olish uchun metodlar mavjud. Ular LocalDate va LocalTime sinflarining metodlariga aynan o'xshaydi. Ularni bu yerda takrorlamaymiz.



2. Klass Instant

Java dasturchilari eski maktab manfaatlarini ham unutishmadi.

Date Time API-da Instant klassi qo'shildi, u kompyuterlar ichidagi jarayonlar uchun vaqt bilan ishlashga qaratilgan. U soat, daqiqa va sekundlar o'rniga sekundlar, millisekundlar va nanosekundlar bilan ishlaydi.

Bu klass o'zida ikki maydonni saqlaydi:

  • sekundlar soni, 1970 yil 1 yanvardan boshlab o'tgan
  • nanosekundlar soni

Klass dasturchilar uchun yaratilganmi? Ha. Shuning uchun u yana vaqtni Unix-time formatida hisoblaydi: 1970 yil boshidan.

Instant klassini Date klassining soddalashtirilgan versiyasi deb ham aytish mumkin: faqat dasturchilarga kerakli narsalar qoldirilgan.

Instant obyektini olish LocalTime obyektini olish kabi sodda:

Instant timestamp = Instant.now();

Bu yerda timestamp — Instant klassining o'zgaruvchisi, va Instant.now() — bu now() statik metodining chaqiruvi.

Misol:

Kod Ekranga chiqarish
Instant timestamp = Instant.now();
System.out.println(timestamp);

2019-02-22T08:42:42.234945300Z

Shuningdek, 1970 yil 1 yanvardan boshlab o‘tgan vaqtni o‘tkazish orqali of() metodining turlari yordamida yangi obyekt yaratish mumkin:

ofEpochMilli(long milliseconds)
Millisekundlar sonini o'tkazish kerak
ofEpochSecond(long seconds)
Sekundlar sonini o'tkazish kerak
ofEpochSecond(long seconds, long nanos)
Sekundlar va nanosekundlarni o'tkazish kerak

Obyektlarning metodlari Instant

Instant klassida uning qiymatlarini qaytaradigan ikkita metod mavjud:

long getEpochSecond()
1970 yil 1 yanvardan boshlab o'tgan sekundlar soni
int getNano()
Nanosekundlar.
long toEpochMilli()
1970 yil 1 yanvardan boshlab o'tgan millisekundlar soni

Shuningdek, mavjud Instant obyektiga asoslangan yangi obyektlar yaratadigan metodlar mavjud:

Instant plusSeconds(long)
Joriy vaqtga sekundlar qo'shadi
Instant plusMillis(long)
Millisekundlar qo'shadi
Instant plusNanos(long)
Nanosekundlar qo'shadi
Instant minusSeconds(long)
Sekundlarni ayiradi
Instant minusMillis(long)
Millisekundlarni ayiradi
Instant minusNanos(long)
Nanosekundlarni ayiradi

Misollar:

Kod Ekranga chiqarish
Instant timestamp = Instant.now();
System.out.println(timestamp);

long n = timestamp.toEpochMilli();
Instant time = Instant.ofEpochMilli(n);
System.out.println(time);

2019-02-22T09:01:20.535344Z



2019-02-22T09:01:20.535Z

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION