OffsetDateTime হল java.time প্যাকেজের একটি গুরুত্বপূর্ণ ক্লাস, যা তারিখ (date) এবং সময় (time) ধারণ করার সাথে সাথে একটি নির্দিষ্ট অফসেট (UTC offset) ধারণ করে। এটি ISO 8601 ফরম্যাটে তারিখ এবং সময় পরিচালনা করে এবং সময় অঞ্চল সম্পর্কিত অতিরিক্ত তথ্য (যেমন UTC-offset) প্রদান করে।
OffsetDateTime ক্লাসটি ZonedDateTime ক্লাসের মতোই কাজ করে, তবে এর মধ্যে সময় অঞ্চলের নামের পরিবর্তে UTC-offset ব্যবহৃত হয় (যেমন: +02:00, -03:00 ইত্যাদি)।
OffsetDateTime এর ধারণা:
- OffsetDateTime সময় এবং তারিখ ধারণ করে, এবং এই সময়টি একটি নির্দিষ্ট UTC-offset (সময়সীমা) সহ থাকে।
- এটি
ZonedDateTimeএর মতোই কাজ করে, তবে এর মধ্যে অঞ্চল সম্পর্কিত নামের পরিবর্তে সরাসরিZoneOffsetব্যবহার করা হয়। - এটি সাধারণত বিশ্বব্যাপী (global) বা distributed systems এর ক্ষেত্রে ব্যবহার করা হয়, যেখানে সময়ের সঙ্গে UTC-offset নির্ধারণ করা গুরুত্বপূর্ণ।
OffsetDateTime এর প্রধান মেথড:
now(): বর্তমান তারিখ এবং সময় পাওয়ার জন্য।of(): নির্দিষ্ট তারিখ, সময় এবং UTC-offset দিয়েOffsetDateTimeঅবজেক্ট তৈরি করা।withOffsetSameInstant(): নতুন UTC-offset সহ একই সময়ের অবজেক্ট তৈরি করা।toInstant():OffsetDateTimeকেInstantটাইমস্ট্যাম্পে কনভার্ট করা।getOffset(): UTC-offset ফিরে পাওয়া।
OffsetDateTime উদাহরণ:
1. বর্তমান OffsetDateTime পাওয়া:
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
public class OffsetDateTimeExample {
public static void main(String[] args) {
// Get the current OffsetDateTime with the system default offset
OffsetDateTime currentDateTime = OffsetDateTime.now();
System.out.println("Current Date and Time with Offset: " + currentDateTime);
}
}
আউটপুট:
Current Date and Time with Offset: 2024-12-23T14:35:20.345+05:30
এখানে:
+05:30হলো UTC offset, যা নির্দেশ করে সময়UTCথেকে 5 ঘণ্টা 30 মিনিট এগিয়ে।
2. একটি নির্দিষ্ট OffsetDateTime তৈরি করা:
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
public class OffsetDateTimeExample {
public static void main(String[] args) {
// Create an OffsetDateTime with a specific date, time and offset
OffsetDateTime dateTime = OffsetDateTime.of(2024, 12, 23, 14, 30, 0, 0, ZoneOffset.ofHours(5));
System.out.println("Specific Date and Time with Offset: " + dateTime);
}
}
আউটপুট:
Specific Date and Time with Offset: 2024-12-23T14:30:00+05:00
এখানে:
ZoneOffset.ofHours(5)একটি UTC-offset 5 ঘণ্টা এগিয়ে নির্দেশ করছে।OffsetDateTime.of()মেথডটি একটি নির্দিষ্ট তারিখ, সময় এবং UTC-offset নিয়েOffsetDateTimeঅবজেক্ট তৈরি করেছে।
3. OffsetDateTime এর সময় পরিবর্তন করা:
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
public class OffsetDateTimeExample {
public static void main(String[] args) {
// Create the initial OffsetDateTime object
OffsetDateTime dateTime = OffsetDateTime.of(2024, 12, 23, 14, 30, 0, 0, ZoneOffset.ofHours(5));
System.out.println("Original Date and Time with Offset: " + dateTime);
// Add 3 hours to the original time
OffsetDateTime newDateTime = dateTime.plusHours(3);
System.out.println("Date and Time after adding 3 hours: " + newDateTime);
// Subtract 2 days from the original time
OffsetDateTime earlierDateTime = dateTime.minusDays(2);
System.out.println("Date and Time after subtracting 2 days: " + earlierDateTime);
}
}
আউটপুট:
Original Date and Time with Offset: 2024-12-23T14:30:00+05:00
Date and Time after adding 3 hours: 2024-12-23T17:30:00+05:00
Date and Time after subtracting 2 days: 2024-12-21T14:30:00+05:00
এখানে:
plusHours(3)মেথডটি 3 ঘণ্টা যোগ করেছে।minusDays(2)মেথডটি 2 দিন বিয়োগ করেছে।
4. ZonedDateTime থেকে OffsetDateTime এ কনভার্ট করা:
import java.time.ZonedDateTime;
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
public class OffsetDateTimeExample {
public static void main(String[] args) {
// Get current ZonedDateTime
ZonedDateTime zonedDateTime = ZonedDateTime.now();
// Convert ZonedDateTime to OffsetDateTime with the same instant but different offset
OffsetDateTime offsetDateTime = zonedDateTime.toOffsetDateTime();
System.out.println("Converted OffsetDateTime: " + offsetDateTime);
}
}
আউটপুট:
Converted OffsetDateTime: 2024-12-23T14:35:20.345+05:30
এখানে:
toOffsetDateTime()মেথডটিZonedDateTimeকেOffsetDateTimeএ কনভার্ট করেছে।
5. Instant থেকে OffsetDateTime কনভার্ট করা:
import java.time.Instant;
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
public class OffsetDateTimeExample {
public static void main(String[] args) {
// Get current Instant
Instant instant = Instant.now();
// Convert Instant to OffsetDateTime with a specified offset
OffsetDateTime offsetDateTime = instant.atOffset(ZoneOffset.ofHours(5));
System.out.println("Converted OffsetDateTime from Instant: " + offsetDateTime);
}
}
আউটপুট:
Converted OffsetDateTime from Instant: 2024-12-23T14:35:20.345+05:00
এখানে:
Instant.now()থেকে পাওয়া সময়ZoneOffset.ofHours(5)দ্বারা UTC+5 সময় অঞ্চলে কনভার্ট করা হয়েছে।
OffsetDateTimeসময় এবং তারিখের একটি শক্তিশালী ক্লাস যা UTC-offset সহ সময় পরিচালনা করতে সহায়তা করে।- এটি ব্যবহার করে আপনি সময়ের যোগ-বিয়োগ, সময়ের কনভার্সন (যেমন:
ZonedDateTimeথেকেOffsetDateTime), এবং সময় অঞ্চলের সাথে সময় মানানসই করা সহ বিভিন্ন কাজ করতে পারবেন। ZoneOffsetক্লাসটি UTC-offset প্রতিনিধিত্ব করে এবং সময় অঞ্চলের পরিবর্তে ব্যবহৃত হয়।
Content added By
Read more