Sobes.tech
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 Այո Այո Այո Այո Այո