Java 8 এর পর java.time প্যাকেজটি Date and Time API হিসেবে পরিচিত যা সময় এবং তারিখের ব্যবস্থাপনা আরও সহজ এবং কার্যকরী করেছে। এটি LocalDate, LocalTime, LocalDateTime, ZonedDateTime, এবং Instant সহ বিভিন্ন ক্লাস সরবরাহ করে, যা সময় এবং তারিখের প্রক্রিয়াগুলি পরিচালনা করতে সাহায্য করে। এখানে আমরা LocalDate সম্পর্কিত দুটি বিষয় দেখব:
- নির্দিষ্ট তারিখ সেট করা (Setting a Specific Date)
- ক্যালেন্ডার তারিখ থেকে
LocalDateতৈরি করা (CreatingLocalDatefrom Calendar Date)
1. নির্দিষ্ট তারিখ সেট করা (Setting a Specific Date)
LocalDate ব্যবহার করে আপনি একটি নির্দিষ্ট তারিখ তৈরি করতে পারেন। LocalDate একটি তারিখের অবজেক্ট যেটি year, month, day ধারণ করে।
LocalDate.of() Method:
এই মেথডটি নির্দিষ্ট বছর, মাস, এবং দিন ব্যবহার করে একটি নতুন LocalDate অবজেক্ট তৈরি করে।
Syntax:
LocalDate date = LocalDate.of(int year, int month, int dayOfMonth);
- year: বছর
- month: মাস (1 থেকে 12)
- dayOfMonth: দিন (1 থেকে মাসের সর্বোচ্চ দিন সংখ্যা)
Example:
import java.time.LocalDate;
public class SetSpecificDateExample {
public static void main(String[] args) {
// Set a specific date (e.g., 15th August 2024)
LocalDate specificDate = LocalDate.of(2024, 8, 15);
// Print the specific date
System.out.println("Specific Date: " + specificDate);
}
}
আউটপুট:
Specific Date: 2024-08-15
ব্যাখ্যা:
LocalDate.of(2024, 8, 15)দ্বারা আমরা 15 আগস্ট 2024 তারিখ সেট করেছি।- এরপর
specificDateঅবজেক্টটি প্রিন্ট করা হয়েছে এবং আউটপুটে"2024-08-15"প্রদর্শিত হয়েছে।
2. ক্যালেন্ডার তারিখ থেকে LocalDate তৈরি করা (Creating LocalDate from Calendar Date)
যদি আপনার কাছে java.util.Calendar অবজেক্ট থাকে, তবে আপনি সহজেই LocalDate এ কনভার্ট করতে পারেন। Java-তে Calendar অবজেক্টের মাধ্যমে তারিখ ব্যবস্থাপনা সাধারণত পুরনো ছিল, তবে LocalDate দিয়ে আরও আধুনিক এবং কার্যকরীভাবে তারিখ ম্যানিপুলেট করা যায়।
Calendar থেকে LocalDate তৈরি করা:
Calendar অবজেক্ট থেকে LocalDate তৈরি করার জন্য, আপনাকে LocalDate.of() মেথড ব্যবহার করতে হবে এবং Calendar থেকে বছরের, মাসের, এবং দিনের মান বের করতে হবে।
Example:
import java.util.Calendar;
import java.time.LocalDate;
public class CalendarToLocalDateExample {
public static void main(String[] args) {
// Create a Calendar instance
Calendar calendar = Calendar.getInstance();
// Set a specific date (e.g., 15th August 2024)
calendar.set(2024, Calendar.AUGUST, 15);
// Convert Calendar date to LocalDate
LocalDate localDate = calendar.toInstant()
.atZone(java.time.ZoneId.systemDefault())
.toLocalDate();
// Print the LocalDate
System.out.println("LocalDate from Calendar: " + localDate);
}
}
আউটপুট:
LocalDate from Calendar: 2024-08-15
ব্যাখ্যা:
- প্রথমে
Calendar.getInstance()দ্বারা একটিCalendarঅবজেক্ট তৈরি করা হয়। calendar.set(2024, Calendar.AUGUST, 15)দ্বারা 15 আগস্ট 2024 তারিখ সেট করা হয়।- এরপর
calendar.toInstant()এবংatZone()মেথডের মাধ্যমেLocalDateএ কনভার্ট করা হয়। - শেষমেশ,
localDateপ্রিন্ট করা হলে"2024-08-15"আউটপুট আসে।
3. LocalDate এবং Calendar এর মধ্যে পার্থক্য:
| Feature | LocalDate | Calendar |
|---|---|---|
| Type | Immutable (Cannot be modified) | Mutable (Can be modified) |
| Usage | Preferred for modern date handling | Older approach, still used in legacy systems |
| Thread Safety | Thread-safe | Not thread-safe by default |
| API Simplicity | Simplified API for date manipulation | More complex API with additional methods |
| Time Zone Support | Supports only local time | Supports time zones and time offsets |
Summary:
LocalDateহল একটি ক্লাস যা শুধুমাত্র তারিখ পরিচালনা করে, এবং এটি immutable (অপরিবর্তনীয়)। এটি Java 8 এবং পরবর্তী সংস্করণের জন্য আধুনিক তারিখ/সময় ব্যবস্থাপনার জন্য ব্যবহৃত হয়।Calendarহল পুরানো Java API যা mutable (পরিবর্তনযোগ্য) এবং টাইম জোন এবং সময়ের সাথে সম্পর্কিত আরো বিস্তারিত তথ্য রাখে, তবে এটি জটিল এবং থ্রেড-সেফ নয়।- আপনি
LocalDate.of()মেথড ব্যবহার করে নির্দিষ্ট তারিখ সেট করতে পারেন, এবং পুরানোCalendarঅবজেক্ট থেকেLocalDateতৈরি করতেtoInstant()এবংatZone()মেথড ব্যবহার করতে পারেন।
Java 8 এবং পরবর্তী সংস্করণে LocalDate এবং java.time API ব্যবহারের পরামর্শ দেওয়া হয়, কারণ এটি আরও সহজ, পরিষ্কার এবং কার্যকরী।
Read more