Java 8 থেকে, java.time প্যাকেজে নতুন Date-Time API যোগ করা হয়েছে যা পূর্বের java.util.Date এবং java.util.Calendar এর সমস্যাগুলো সমাধান করেছে। এর মধ্যে LocalDate, LocalTime, এবং LocalDateTime হল প্রধান ক্লাসগুলি যা তারিখ এবং সময়ের সাথে কাজ করতে ব্যবহৃত হয়।
এই তিনটি ক্লাস খুবই গুরুত্বপূর্ণ, কারণ তারা নির্দিষ্ট দিনের তারিখ, সময়, বা তারিখ-সময়ের সংমিশ্রণ ধারণ করে এবং তাদের পারফেক্ট ব্যবহার করতে Java 8-এর নতুন Date-Time API অপরিহার্য।
১. LocalDate
LocalDate শুধুমাত্র তারিখ (যেমন দিন, মাস, বছর) ধারণ করে। এটি কোন সময় বা টাইমজোনের তথ্য রাখে না। LocalDate তারিখের সাথে কাজ করার জন্য উপযুক্ত।
ব্যবহার:
LocalDateতারিখের তথ্য যেমন day, month, এবং year ধারণ করে।- এটি immutable এবং thread-safe।
উদাহরণ:
import java.time.LocalDate;
public class LocalDateExample {
public static void main(String[] args) {
// বর্তমান তারিখ
LocalDate currentDate = LocalDate.now();
System.out.println("Current Date: " + currentDate); // Output: 2024-11-15 (today's date)
// নির্দিষ্ট তারিখ
LocalDate specificDate = LocalDate.of(2022, 10, 25);
System.out.println("Specific Date: " + specificDate); // Output: 2022-10-25
// আজকের দিন, মাস, বছর আলাদাভাবে
System.out.println("Day: " + currentDate.getDayOfMonth()); // Day: 15
System.out.println("Month: " + currentDate.getMonth()); // Month: NOVEMBER
System.out.println("Year: " + currentDate.getYear()); // Year: 2024
}
}এখানে LocalDate.now() বর্তমান তারিখ প্রদান করেছে এবং LocalDate.of() নির্দিষ্ট তারিখ তৈরি করেছে।
২. LocalTime
LocalTime শুধুমাত্র সময় ধারণ করে, যেমন ঘণ্টা, মিনিট, সেকেন্ড, এবং ন্যানো সেকেন্ড। এটি তারিখের কোনো তথ্য ধারণ করে না এবং time-zone sensitive নয়।
ব্যবহার:
LocalTimeসময়ের তথ্য ধারণ করে যেমন ঘণ্টা, মিনিট, সেকেন্ড।- এটি immutable এবং thread-safe।
উদাহরণ:
import java.time.LocalTime;
public class LocalTimeExample {
public static void main(String[] args) {
// বর্তমান সময়
LocalTime currentTime = LocalTime.now();
System.out.println("Current Time: " + currentTime); // Output: 15:30:45.123456 (Example)
// নির্দিষ্ট সময়
LocalTime specificTime = LocalTime.of(10, 30, 45);
System.out.println("Specific Time: " + specificTime); // Output: 10:30:45
// ঘণ্টা, মিনিট, সেকেন্ড
System.out.println("Hour: " + currentTime.getHour()); // Hour: 15
System.out.println("Minute: " + currentTime.getMinute()); // Minute: 30
System.out.println("Second: " + currentTime.getSecond()); // Second: 45
}
}এখানে LocalTime.now() বর্তমান সময় প্রদান করেছে এবং LocalTime.of() নির্দিষ্ট সময় তৈরি করেছে।
৩. LocalDateTime
LocalDateTime হল LocalDate এবং LocalTime এর সংমিশ্রণ, অর্থাৎ এটি তারিখ এবং সময় উভয় ধারণ করে। এটি একটি নির্দিষ্ট সময় এবং তারিখের উপর কাজ করতে সহায়ক।
ব্যবহার:
LocalDateTimeতারিখ এবং সময়ের তথ্য ধারণ করে।- এটি immutable এবং thread-safe।
উদাহরণ:
import java.time.LocalDateTime;
public class LocalDateTimeExample {
public static void main(String[] args) {
// বর্তমান তারিখ এবং সময়
LocalDateTime currentDateTime = LocalDateTime.now();
System.out.println("Current DateTime: " + currentDateTime); // Output: 2024-11-15T15:30:45.123456
// নির্দিষ্ট তারিখ এবং সময়
LocalDateTime specificDateTime = LocalDateTime.of(2022, 10, 25, 14, 30, 45);
System.out.println("Specific DateTime: " + specificDateTime); // Output: 2022-10-25T14:30:45
// দিন, মাস, বছর, ঘণ্টা, মিনিট, সেকেন্ড আলাদাভাবে
System.out.println("Year: " + currentDateTime.getYear()); // Year: 2024
System.out.println("Month: " + currentDateTime.getMonth()); // Month: NOVEMBER
System.out.println("Day: " + currentDateTime.getDayOfMonth()); // Day: 15
System.out.println("Hour: " + currentDateTime.getHour()); // Hour: 15
System.out.println("Minute: " + currentDateTime.getMinute()); // Minute: 30
System.out.println("Second: " + currentDateTime.getSecond()); // Second: 45
}
}এখানে LocalDateTime.now() বর্তমান তারিখ এবং সময় প্রদান করেছে, এবং LocalDateTime.of() নির্দিষ্ট তারিখ এবং সময় তৈরি করেছে।
৪. Date-Time API-তে Additional Operations
Date Manipulation
Java 8-এ LocalDate, LocalTime, এবং LocalDateTime এ ডেটা ম্যানিপুলেশন খুবই সহজ হয়েছে। আপনি plus এবং minus মেথড ব্যবহার করে তারিখ এবং সময় যোগ বা বিয়োগ করতে পারেন।
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.LocalDateTime;
public class DateTimeManipulation {
public static void main(String[] args) {
// LocalDate manipulation
LocalDate today = LocalDate.now();
LocalDate nextWeek = today.plusWeeks(1);
System.out.println("Next Week: " + nextWeek); // Output: 2024-11-22 (Example)
// LocalTime manipulation
LocalTime currentTime = LocalTime.now();
LocalTime nextHour = currentTime.plusHours(1);
System.out.println("Next Hour: " + nextHour); // Output: 16:30:45 (Example)
// LocalDateTime manipulation
LocalDateTime currentDateTime = LocalDateTime.now();
LocalDateTime nextMonth = currentDateTime.plusMonths(1);
System.out.println("Next Month: " + nextMonth); // Output: 2024-12-15T15:30:45 (Example)
}
}এখানে, plusWeeks(), plusHours(), এবং plusMonths() মেথডগুলি ডেটা ও সময় যোগ করার জন্য ব্যবহৃত হয়েছে।
সারসংক্ষেপ
- LocalDate: শুধুমাত্র তারিখ (দিন, মাস, বছর) ধারণ করে এবং সময় বা টাইমজোনের তথ্য রাখে না।
- LocalTime: শুধুমাত্র সময় (ঘণ্টা, মিনিট, সেকেন্ড) ধারণ করে এবং তারিখের কোন তথ্য থাকে না।
- LocalDateTime: তারিখ এবং সময় উভয়ই ধারণ করে এবং টাইমজোনের সাথে সম্পর্কিত নয়।
এই ক্লাসগুলির সাহায্যে Java 8-এ তারিখ এবং সময়ের সাথে কাজ করা অনেক সহজ এবং নিরাপদ হয়ে উঠেছে। java.time API থেকে বিভিন্ন ম্যানিপুলেশন মেথড ব্যবহার করে আপনি সহজেই তারিখ ও সময়ের সাথে বিভিন্ন কার্যক্রম সম্পাদন করতে পারবেন।
Read more