Junior
Ի՞նչ է ZonedDateTime-ը։
sobes.tech AI
Պատասխան AI-ից
ZonedDateTime — դա java.time փաթեթից դաս է, որը ներկայացնում է ամսաթիվ և ժամանակ ճիշտ տեղաշարժով UTC* և կապված նրա ժամանակային գոտու հետ։ Այն հաշվի է առնում ամառային ժամանակի անցումը և այլ առանձնահատկություններ տվյալ ժամանակային գոտու համար։
Ի տարբերություն OffsetDateTime, որը պահում է միայն UTC-ից շեղումը, ZonedDateTime պահում է ZoneId օբյեկտի հղում, որը ներկայացնում է ժամանակային գոտին, ինչը թույլ է տալիս ճիշտ կատարել ժամանակային հաշվարկներ՝ հաշվի առնելով տարվա ընթացքում ժամանակի փոփոխությունները։
Հիմնական հատկանիշներ՝
- Կոմբինացիա: Միավորում է ամսաթիվը, ժամանակը և ժամանակային գոտին։
- Նշվածություն: Հաշվի է առնում ամառային ժամանակի անցումի (DST) կանոնները և այլ փոփոխություններ գոտու սահմաններում։
- Անփոփոխություն:
ZonedDateTimeօբյեկտները անփոփոխ են, ինչպես ևjava.timeմյուս դասերը։
Օրինակ ստեղծում՝
// Ստեղծում `ZonedDateTime` որոշակի ժամանակային կետով և գոտիով
ZonedDateTime dateTimeInLondon = ZonedDateTime.of(2023, 10, 26, 10, 30, 0, 0, ZoneId.of("Europe/London"));
System.out.println(dateTimeInLondon);
// Ստանալ ընթացիկ `ZonedDateTime` համակարգի գոտում
ZonedDateTime now = ZonedDateTime.now();
System.out.println(now);
Օգտագործում՝
- Միջոցառումների ներկայացում, որոնք կապված են կոնկրետ վայրի և ժամանակի հետ (օրինակ՝ համերգի մեկնարկի ժամանակը նշված քաղաքում):
- Հաշվարկներ տարբեր ժամային գոտիներում գտնվող ժամանակային կետերի միջև՝ հաշվի առնելով DST կանոնները:
- Աշխատանք արտաքին համակարգերի կամ տվյալների բազաների հետ, որոնք պահանջում են ժամանակային գոտու նշում։
Համեմատություն այլ դասերի հետ՝
| Դասը | Ամսաթիվ | Ժամանակ | UTC-ից շեղում | Ժամանակային գոտի | Հաշվի է առնում DST |
|---|---|---|---|---|---|
LocalDateTime |
Այո | Այո | Ոչ | Ոչ | Ոչ |
OffsetDateTime |
Այո | Այո | Այո | Ոչ | Կես-կես |
ZonedDateTime |
Այո | Այո | Այո | Այո | Այո |