4-modul · 6-dars: Date/Calendar · Time API

Daraja: O'rta

Date/Calendar · Time API. Multithreading va I/O bo‘yicha nazariya, amaliy namuna va mustaqil mashq.

Tushuntirish

## Dars maqsadi Date/Calendar · Time API tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.

## Nazariya Vaqt nuqtasini (millisekundlarda) ifodalovchi eski class (`java.util.Date`).

Sana/vaqtni komponentlarga (yil, oy, kun) ajratib ishlash va manipulyatsiya uchun eski abstract class.

## Intervyuga tayyorgarlik ### Date nima? Vaqt nuqtasini (millisekundlarda) ifodalovchi eski class (`java.util.Date`).

### Calendar nima? Sana/vaqtni komponentlarga (yil, oy, kun) ajratib ishlash va manipulyatsiya uchun eski abstract class.

### Calendar va Date classlarini nima uchun ishlatamiz? Sana-vaqtni saqlash, formatlash va o'zgartirish uchun (endi Time API afzal).

### Date classining kamchiliklari? Mutable, thread-safe emas, oylar 0 dan boshlanadi, chalkash API, timezone boshqaruvi zaif — deyarli deprecated.

### Calendar classining kamchiliklari? Mutable, thread-safe emas, murakkab va noqulay API, oy 0-indeksli.

### SimpleDateFormat nima? Date ni matnga (va aksincha) formatlash/parse qilish class i (`java.text`).

### SimpleDateFormat format() nima uchun ishlatiladi? Date obyektini belgilangan shablon (masalan `dd-MM-yyyy`) bo'yicha matnga aylantirish uchun.

### Time API nima? Java 8 ning yangi sana-vaqt paketi (`java.time`) — `LocalDate`, `LocalTime`, `LocalDateTime`, `ZonedDateTime` va h.k.

### Time API nima uchun Java 8 ga qo'shilgan? Eski Date/Calendar kamchiliklarini (mutable, thread-safe emas, noqulay) bartaraf etish uchun — immutable, aniq, qulay API.

### Duration nima? Vaqt oralig'ini (soat, daqiqa, soniya — mashina vaqti) ifodalovchi class.

### Period nima? Sana oralig'ini (yil, oy, kun — inson vaqti) ifodalovchi class.

### Date va LocalDate o'rtasidagi farq? Date — vaqt nuqtasi (mutable). LocalDate — faqat sana (yil-oy-kun), vaqtsiz, immutable, thread-safe.

### Date va ZonedDate o'rtasidagi farq? Date timezoneni yaxshi boshqarmaydi; `ZonedDateTime` sana-vaqtni aniq vaqt mintaqasi (timezone) bilan ifodalaydi.

### Time va LocalTime o'rtasidagi farq? Eski Date/Time chalkash; `LocalTime` — faqat vaqt (soat-daqiqa-soniya), sanasiz, immutable.

## Versiya va aniqlik Java misollari Java 17 bazasiga mo‘ljallangan. JDK/JRE paketlash usuli distributivga bog‘liq; JVM bayt-kodni interpretatsiya va JIT orqali bajarishi mumkin. GC uchun aniq bajarilish vaqtiga kafolat yo‘q; finalization resurs yopish usuli emas. Thread stop/suspend/resume kabi eski metodlar amaliy yechim emas. Koddagi import, klass yoki tashqi kutubxona kontekstini tekshiring.

## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/4-module.md) [Rasmiy qo‘llanma](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/package-summary.html) [Sizning avvalgi savol-javob arxivingiz](https://lightyer.uz/java/interview.html)

Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.

Kod misoli

var date = java.time.LocalDate.of(2026, 9, 10);
var instant = java.time.Instant.parse("2026-09-10T00:00:00Z");
System.out.println(date.plusDays(1));
System.out.println(instant.atZone(java.time.ZoneId.of("Asia/Tashkent")));

Keng tarqalgan xatolar

Mashqlar

Teglar: pdp, modul-04, nazariya

Interaktiv ko'rinish (viktorina, izohlar, tarix)