Java 8-এ java.time প্যাকেজটি নতুন Date/Time API নিয়ে এসেছে যা সময় এবং তারিখ পরিচালনার জন্য একটি উন্নত, পরিষ্কার এবং নির্ভরযোগ্য পদ্ধতি সরবরাহ করে। এই নতুন API পূর্ববর্তী java.util.Date এবং java.util.Calendar এর তুলনায় অনেক বেশি কার্যকরী এবং ব্যবহারযোগ্য। এই API দিয়ে আপনি Date/Time Parsing, Formatting, এবং TimeZone Management সহজভাবে করতে পারবেন।
১. Date/Time Parsing and Formatting
Date এবং Time এর স্ট্রিং থেকে অবজেক্ট তৈরি (parsing) বা অবজেক্ট থেকে স্ট্রিং এ কনভার্ট (formatting) করা একটি সাধারণ কাজ। Java 8-এ এটি করার জন্য DateTimeFormatter এবং DateTimeParseException ব্যবহার করা হয়।
Date/Time Parsing (পার্সিং)
পার্সিং হল স্ট্রিং ফরম্যাট থেকে LocalDate, LocalTime, অথবা LocalDateTime অবজেক্ট তৈরি করার প্রক্রিয়া।
DateTimeFormatter ব্যবহার করে আপনি নির্দিষ্ট ফরম্যাটে স্ট্রিং থেকে টাইম অবজেক্ট তৈরি করতে পারেন।
উদাহরণ: DateTimeFormatter দিয়ে পার্সিং
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class DateParsingExample {
public static void main(String[] args) {
String dateString = "2024-11-15";
// DateTimeFormatter তৈরি করা
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
// String থেকে LocalDate এ পার্সিং
LocalDate date = LocalDate.parse(dateString, formatter);
System.out.println(date); // Output: 2024-11-15
}
}এখানে, "yyyy-MM-dd" ফরম্যাট ব্যবহার করে স্ট্রিং dateString থেকে LocalDate অবজেক্টে রূপান্তর করা হয়েছে।
Date/Time Formatting (ফরম্যাটিং)
ফরম্যাটিং হল LocalDate, LocalTime, বা LocalDateTime অবজেক্ট থেকে স্ট্রিং তৈরি করার প্রক্রিয়া। DateTimeFormatter ব্যবহার করে আপনি একটি নির্দিষ্ট স্ট্রিং ফরম্যাটে টাইম অবজেক্টকে কনভার্ট করতে পারেন।
উদাহরণ: DateTimeFormatter দিয়ে ফরম্যাটিং
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class DateFormattingExample {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2024, 11, 15);
// DateTimeFormatter তৈরি করা
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
// LocalDate থেকে String এ ফরম্যাটিং
String formattedDate = date.format(formatter);
System.out.println(formattedDate); // Output: 2024/11/15
}
}এখানে, LocalDate অবজেক্টটি "yyyy/MM/dd" ফরম্যাটে স্ট্রিং এ কনভার্ট করা হয়েছে।
২. TimeZone Management
Java 8 এ java.time প্যাকেজটি ZoneId, ZonedDateTime এবং ZoneOffset সহ টাইমজোন পরিচালনা করতে সহায়তা করে। টাইমজোন ব্যবস্থাপনা করার জন্য ZoneId ব্যবহার করা হয়, যা বিশ্বের বিভিন্ন টাইমজোনের প্রতিনিধিত্ব করে।
ZoneId এবং ZonedDateTime ব্যবহার
ZoneId টাইমজোনের পরিচয় দেয় এবং ZonedDateTime সেই টাইমজোন অনুযায়ী তারিখ ও সময় প্রদান করে।
উদাহরণ: ZonedDateTime ব্যবহার
import java.time.ZoneId;
import java.time.ZonedDateTime;
public class TimeZoneExample {
public static void main(String[] args) {
// টাইমজোন নির্ধারণ করা
ZoneId zoneId = ZoneId.of("Asia/Kolkata");
// ZonedDateTime তৈরি করা
ZonedDateTime zonedDateTime = ZonedDateTime.now(zoneId);
System.out.println("Time in Asia/Kolkata: " + zonedDateTime);
}
}এখানে, ZoneId.of("Asia/Kolkata") দিয়ে Asia/Kolkata টাইমজোনের ZonedDateTime তৈরি করা হয়েছে এবং তা প্রিন্ট করা হয়েছে।
Time Zone থেকে UTC (Coordinated Universal Time) এ কনভার্ট
ZonedDateTime ব্যবহার করে টাইমজোনের মধ্যে ডেটা কনভার্ট করা যায়।
উদাহরণ: ZonedDateTime থেকে UTC কনভার্ট
import java.time.ZoneId;
import java.time.ZonedDateTime;
public class TimeZoneConversionExample {
public static void main(String[] args) {
// Asia/Kolkata টাইমজোনে ZonedDateTime তৈরি করা
ZonedDateTime indiaTime = ZonedDateTime.now(ZoneId.of("Asia/Kolkata"));
// UTC তে কনভার্ট করা
ZonedDateTime utcTime = indiaTime.withZoneSameInstant(ZoneId.of("UTC"));
System.out.println("India Time: " + indiaTime);
System.out.println("UTC Time: " + utcTime);
}
}এখানে, withZoneSameInstant() মেথড ব্যবহার করে India টাইমজোনের সময়কে UTC টাইমজোনে কনভার্ট করা হয়েছে।
৩. OffsetDateTime এবং ZoneOffset ব্যবহারের উদাহরণ
OffsetDateTime এবং ZoneOffset টাইমজোনের ভিন্ন ভিন্ন পদ্ধতি দিয়ে ডেটা ম্যানেজ করে। OffsetDateTime হল একটি টাইমস্ট্যাম্প যা একটি নির্দিষ্ট অফসেট (যেমন UTC+5:30) সহ থাকে।
উদাহরণ: OffsetDateTime ব্যবহার
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
public class OffsetDateTimeExample {
public static void main(String[] args) {
// OffsetDateTime তৈরি করা
OffsetDateTime offsetDateTime = OffsetDateTime.now(ZoneOffset.ofHours(5));
System.out.println("OffsetDateTime: " + offsetDateTime); // Output: OffsetDateTime with UTC+5 hours
}
}এখানে, ZoneOffset.ofHours(5) ব্যবহার করে একটি UTC+5 টাইমজোনে OffsetDateTime তৈরি করা হয়েছে।
সারসংক্ষেপ
- Date/Time Parsing এবং Formatting করতে
DateTimeFormatterব্যবহার করা হয়, যা স্ট্রিং থেকে ডেটা অবজেক্টে কনভার্ট এবং ডেটা অবজেক্ট থেকে স্ট্রিং তৈরি করতে সহায়তা করে। - TimeZone Management করতে
ZoneId,ZonedDateTime, এবংZoneOffsetব্যবহার করা হয়, যা বিভিন্ন টাইমজোনের সাথে ডেটা পরিচালনা এবং কনভার্ট করতে সহায়তা করে। ZonedDateTimeটাইমজোনের মধ্যে ডেটা কনভার্ট করতে এবং নির্দিষ্ট টাইমজোনে সময় নির্ধারণ করতে ব্যবহৃত হয়।OffsetDateTimeএবংZoneOffsetব্যবহার করে টাইমজোনের অফসেট নির্ধারণ করা হয় এবং টাইমস্ট্যাম্প তৈরি করা হয়।
Java 8 এর Date/Time API ব্যবহার করে সময় ও তারিখের সাথে কাজ করা অনেক সহজ, শক্তিশালী এবং নিরাপদ হয়েছে।
Read more