Java.time প্যাকেজ Java 8-এ পরিচিতি লাভ করেছে এবং এটি Date and Time API এর মাধ্যমে সময় এবং তারিখের সঙ্গে কাজ করার একটি উন্নত পদ্ধতি সরবরাহ করে। এই প্যাকেজটি LocalDateTime, LocalDate, LocalTime, ZonedDateTime, Duration, এবং Period এর মত ক্লাস দিয়ে নির্দিষ্ট সময় সেট করা এবং তার সঙ্গে কাজ করার জন্য বেশ কার্যকরী টুল সরবরাহ করে।
এখানে আমরা আলোচনা করব কিভাবে নির্দিষ্ট সময় সেট করা যায় এবং তার সাথে কাজ করা যায় Java.time প্যাকেজ ব্যবহার করে।
1. নির্দিষ্ট সময় সেট করা (Setting Specific Time)
Java 8 এর java.time প্যাকেজে LocalTime, LocalDate, এবং LocalDateTime ক্লাস ব্যবহার করে নির্দিষ্ট সময় এবং তারিখ সেট করা যায়। এখানে কিভাবে নির্দিষ্ট সময় সেট করা যায় এবং তার সাথে কাজ করা যায়, তা দেখানো হচ্ছে।
1.1 LocalTime ক্লাসের মাধ্যমে সময় সেট করা:
LocalTime ক্লাস শুধুমাত্র সময়ের প্রতিনিধিত্ব করে (যেমন ঘণ্টা, মিনিট, সেকেন্ড) এবং এর সাথে কোনো তারিখ বা টাইমজোন সম্পর্কিত তথ্য থাকে না।
import java.time.LocalTime;
public class SetSpecificTime {
public static void main(String[] args) {
// Creating a specific time
LocalTime time = LocalTime.of(14, 30); // 14:30 (2:30 PM)
System.out.println("Specific Time: " + time);
// Setting time with hours, minutes, seconds and nanoseconds
LocalTime detailedTime = LocalTime.of(14, 30, 15, 500000000); // 14:30:15.500
System.out.println("Detailed Time: " + detailedTime);
// Getting the current time
LocalTime currentTime = LocalTime.now();
System.out.println("Current Time: " + currentTime);
}
}
আউটপুট:
Specific Time: 14:30
Detailed Time: 14:30:15.500
Current Time: 14:45:30.123456
ব্যাখ্যা:
LocalTime.of(14, 30): এটি একটি নির্দিষ্ট সময় তৈরি করে (14:30)।LocalTime.now(): এটি বর্তমান সময় ফেরত দেয়।
1.2 LocalDate ক্লাসের মাধ্যমে নির্দিষ্ট তারিখ সেট করা:
LocalDate ক্লাসটি শুধুমাত্র তারিখ (দিন, মাস, বছর) ধারণ করে, কোনো সময় বা টাইমজোন সম্পর্কিত তথ্য থাকে না।
import java.time.LocalDate;
public class SetSpecificDate {
public static void main(String[] args) {
// Creating a specific date
LocalDate date = LocalDate.of(2024, 12, 23); // 23rd December, 2024
System.out.println("Specific Date: " + date);
// Getting the current date
LocalDate currentDate = LocalDate.now();
System.out.println("Current Date: " + currentDate);
}
}
আউটপুট:
Specific Date: 2024-12-23
Current Date: 2024-12-23
ব্যাখ্যা:
LocalDate.of(2024, 12, 23): এটি একটি নির্দিষ্ট তারিখ তৈরি করে (২৩ ডিসেম্বর ২০২৪)।LocalDate.now(): এটি বর্তমান তারিখ ফেরত দেয়।
1.3 LocalDateTime ক্লাসের মাধ্যমে নির্দিষ্ট তারিখ এবং সময় সেট করা:
LocalDateTime ক্লাসটি তারিখ এবং সময় উভয়কে একত্রে ধারণ করে।
import java.time.LocalDateTime;
public class SetSpecificDateTime {
public static void main(String[] args) {
// Creating a specific date and time
LocalDateTime dateTime = LocalDateTime.of(2024, 12, 23, 14, 30); // 23rd December, 2024, 14:30
System.out.println("Specific DateTime: " + dateTime);
// Getting the current date and time
LocalDateTime currentDateTime = LocalDateTime.now();
System.out.println("Current DateTime: " + currentDateTime);
}
}
আউটপুট:
Specific DateTime: 2024-12-23T14:30
Current DateTime: 2024-12-23T14:30:15.500
ব্যাখ্যা:
LocalDateTime.of(2024, 12, 23, 14, 30): এটি একটি নির্দিষ্ট তারিখ এবং সময় তৈরি করে (২৩ ডিসেম্বর ২০২৪, ১৪:৩০)।LocalDateTime.now(): এটি বর্তমান তারিখ এবং সময় ফেরত দেয়।
2. সময়ের সাথে কাজ করা (Working with Time)
Java 8 এর Duration এবং Period ক্লাস ব্যবহার করে আপনি সময়ের পার্থক্য বা সময়ের মান নির্ধারণ করতে পারেন।
2.1 Duration ক্লাসের মাধ্যমে সময়ের পার্থক্য বের করা:
Duration ক্লাসটি সময় (ঘণ্টা, মিনিট, সেকেন্ড, মিলিসেকেন্ড) এর পার্থক্য বের করার জন্য ব্যবহৃত হয়।
import java.time.*;
public class DurationExample {
public static void main(String[] args) {
LocalTime start = LocalTime.of(10, 15); // Start time: 10:15
LocalTime end = LocalTime.of(14, 30); // End time: 14:30
// Calculate the duration between two times
Duration duration = Duration.between(start, end);
System.out.println("Duration: " + duration.toHours() + " hours " + duration.toMinutes() % 60 + " minutes");
}
}
আউটপুট:
Duration: 4 hours 15 minutes
ব্যাখ্যা:
Duration.between(start, end): এটি দুটিLocalTimeএর মধ্যে সময়ের পার্থক্য বের করে এবং সেই পার্থক্যকে Duration হিসেবে ফেরত দেয়।
2.2 Period ক্লাসের মাধ্যমে তারিখের পার্থক্য বের করা:
Period ক্লাসটি তারিখের পার্থক্য বের করার জন্য ব্যবহৃত হয় (যেমন, বছর, মাস, দিন)।
import java.time.*;
public class PeriodExample {
public static void main(String[] args) {
LocalDate startDate = LocalDate.of(2024, 1, 1); // Start date: 1st January 2024
LocalDate endDate = LocalDate.of(2024, 12, 31); // End date: 31st December 2024
// Calculate the period between two dates
Period period = Period.between(startDate, endDate);
System.out.println("Period: " + period.getMonths() + " months " + period.getDays() + " days");
}
}
আউটপুট:
Period: 11 months 30 days
ব্যাখ্যা:
Period.between(startDate, endDate): এটি দুটিLocalDateএর মধ্যে তারিখের পার্থক্য বের করে এবং সেই পার্থক্যকে Period হিসেবে ফেরত দেয়।
3. ZonedDateTime - টাইমজোন সহ সময়ের সাথে কাজ করা
ZonedDateTime ক্লাসটি LocalDateTime এর মতো, তবে এতে টাইমজোন তথ্যও থাকে, যা আন্তর্জাতিক সময় হিসাব করতে সাহায্য করে।
import java.time.*;
public class ZonedDateTimeExample {
public static void main(String[] args) {
ZonedDateTime zonedDateTime = ZonedDateTime.now(ZoneId.of("America/New_York"));
System.out.println("Current ZonedDateTime in New York: " + zonedDateTime);
// Set specific ZonedDateTime
ZonedDateTime specificZonedDateTime = ZonedDateTime.of(2024, 12, 23, 14, 30, 0, 0, ZoneId.of("Europe/London"));
System.out.println("Specific ZonedDateTime in London: " + specificZonedDateTime);
}
}
আউটপুট:
Current ZonedDateTime in New York: 2024-12-23T14:30:00-05:00[America/New_York]
Specific ZonedDateTime in London: 2024-12-23T14:30+00:00[Europe/London]
ব্যাখ্যা:
ZonedDateTime.now(ZoneId.of("America/New_York")): এটি নিউইয়র্ক টাইমজোনের বর্তমান সময় ফেরত দেয়।ZonedDateTime.of(): এটি নির্দিষ্ট একটি তারিখ, সময় এবং টাইমজোন দিয়ে ZonedDateTime তৈরি করে।
Java 8 এর java.time প্যাকেজটি টাইম এবং তারিখ পরিচালনা করার জন্য একটি শক্তিশালী এবং সুবিধাজনক API সরবরাহ করে। এটি LocalDateTime, LocalDate, LocalTime, ZonedDateTime ক্লাসসহ আরো অনেক বৈশিষ্ট্য নিয়ে আসে যা immutable, thread-safe, এবং অত্যন্ত clear API ব্যবহারের মাধ্যমে সময় এবং তারিখের পরিচালনাকে সহজ এবং দক্ষ করে তোলে।
Read more