DateTimeFormatter একটি ক্লাস যা java.time প্যাকেজে অন্তর্ভুক্ত এবং এটি তারিখ এবং সময়ের তথ্য ফরম্যাট করার জন্য ব্যবহৃত হয়। এর মাধ্যমে আপনি LocalDateTime, LocalDate, LocalTime, ZonedDateTime ইত্যাদি তারিখ ও সময় অবজেক্টগুলোকে একটি নির্দিষ্ট ফরম্যাটে রূপান্তর করতে পারেন এবং ফরম্যাটকৃত স্ট্রিং পার্স (parse) করতে পারেন।
DateTimeFormatter একটি খুবই শক্তিশালী টুল যা আপনাকে ISO স্ট্যান্ডার্ড ছাড়াও আপনার নিজের প্রয়োজন অনুযায়ী কাস্টম তারিখ এবং সময় ফরম্যাট তৈরি করতে সহায়তা করে।
DateTimeFormatter ব্যবহার:
DateTimeFormatterদিয়ে তারিখ ও সময় ফরম্যাট করা (Formatting Date and Time):format()মেথড ব্যবহার করে আপনি একটিLocalDateTimeঅবজেক্টকে একটি নির্দিষ্ট ফরম্যাটে কনভার্ট করতে পারেন।
DateTimeFormatterদিয়ে তারিখ ও সময় স্ট্রিং পার্স করা (Parsing Date and Time):parse()মেথড ব্যবহার করে একটি ফরম্যাট করা স্ট্রিংকে একটিLocalDateTimeবা অন্য কোনোjava.timeঅবজেক্টে রূপান্তর করা যায়।
DateTimeFormatter উদাহরণ:
1. DateTimeFormatter দিয়ে তারিখ ও সময় ফরম্যাট করা (Formatting):
import java.time.*;
import java.time.format.*;
public class DateTimeFormatterExample {
public static void main(String[] args) {
// Create a LocalDateTime object
LocalDateTime dateTime = LocalDateTime.of(2024, 12, 23, 14, 30, 0); // 2024-12-23T14:30:00
// Define a DateTimeFormatter
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss");
// Format the LocalDateTime object
String formattedDateTime = dateTime.format(formatter);
// Print the formatted date and time
System.out.println("Formatted DateTime: " + formattedDateTime);
}
}
আউটপুট:
Formatted DateTime: 23-12-2024 14:30:00
ব্যাখ্যা:
DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss"): এটি একটি কাস্টম ফরম্যাট তৈরি করে। এখানে,ddদিন,MMমাস,yyyyবছর,HHঘণ্টা,mmমিনিট এবংssসেকেন্ডকে ফরম্যাট করে।dateTime.format(formatter):LocalDateTimeঅবজেক্টকে নির্দিষ্ট ফরম্যাটে রূপান্তর করা হয়েছে।
2. DateTimeFormatter দিয়ে স্ট্রিং পার্স করা (Parsing):
DateTimeFormatter ব্যবহার করে আপনি একটি ফরম্যাট করা স্ট্রিংকে একটি LocalDateTime, LocalDate, বা LocalTime অবজেক্টে রূপান্তর করতে পারেন।
import java.time.*;
import java.time.format.*;
public class DateTimeParsingExample {
public static void main(String[] args) {
// Define a DateTimeFormatter with a pattern
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss");
// Parse a string into a LocalDateTime object
String dateTimeString = "23-12-2024 14:30:00";
LocalDateTime parsedDateTime = LocalDateTime.parse(dateTimeString, formatter);
// Print the parsed LocalDateTime object
System.out.println("Parsed LocalDateTime: " + parsedDateTime);
}
}
আউটপুট:
Parsed LocalDateTime: 2024-12-23T14:30
ব্যাখ্যা:
DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss"): এটি স্ট্রিংয়ের ফরম্যাট অনুযায়ীDateTimeFormatterতৈরি করে।LocalDateTime.parse(dateTimeString, formatter): এটিdateTimeStringস্ট্রিংকেLocalDateTimeঅবজেক্টে রূপান্তর করে।
3. ISO Format ব্যবহার করা:
ISO-8601 ফরম্যাট জাভাতে ডিফল্ট ফরম্যাট হিসেবে ব্যবহৃত হয়। আপনি DateTimeFormatter.ISO_LOCAL_DATE_TIME এবং অন্যান্য ISO ফরম্যাট ব্যবহার করে তারিখ ও সময় ফরম্যাট করতে পারেন।
ISO Format উদাহরণ:
import java.time.*;
import java.time.format.*;
public class IsoDateTimeFormatterExample {
public static void main(String[] args) {
// Create a LocalDateTime object
LocalDateTime dateTime = LocalDateTime.of(2024, 12, 23, 14, 30, 0);
// Format the LocalDateTime object using ISO format
String isoFormattedDateTime = dateTime.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME);
// Print the ISO formatted date and time
System.out.println("ISO Formatted DateTime: " + isoFormattedDateTime);
// Parse a string into LocalDateTime using ISO format
String isoDateTimeString = "2024-12-23T14:30:00";
LocalDateTime parsedDateTime = LocalDateTime.parse(isoDateTimeString, DateTimeFormatter.ISO_LOCAL_DATE_TIME);
// Print the parsed LocalDateTime object
System.out.println("Parsed DateTime: " + parsedDateTime);
}
}
আউটপুট:
ISO Formatted DateTime: 2024-12-23T14:30:00
Parsed DateTime: 2024-12-23T14:30
ব্যাখ্যা:
DateTimeFormatter.ISO_LOCAL_DATE_TIME: এটি একটি প্রি-ডিফাইনড ফরম্যাট, যা ISO 8601 ফরম্যাটেLocalDateTimeফরম্যাট করে।LocalDateTime.parse(): এটি স্ট্রিংটিকে একটিLocalDateTimeঅবজেক্টে রূপান্তর করে।
4. ZonedDateTime ফরম্যাট এবং পার্সিং (Time Zone এর সাথে)
ZonedDateTime ক্লাস ব্যবহার করে আপনি টাইমজোন সহ তারিখ এবং সময় ফরম্যাট করতে পারেন। এখানে DateTimeFormatter এর মাধ্যমে ZonedDateTime ফরম্যাট এবং পার্সিং দেখানো হচ্ছে।
import java.time.*;
import java.time.format.*;
public class ZonedDateTimeFormatterExample {
public static void main(String[] args) {
// Create a ZonedDateTime object
ZonedDateTime zonedDateTime = ZonedDateTime.of(2024, 12, 23, 14, 30, 0, 0, ZoneId.of("America/New_York"));
// Format the ZonedDateTime object
String zonedDateTimeString = zonedDateTime.format(DateTimeFormatter.ISO_ZONED_DATE_TIME);
System.out.println("Formatted ZonedDateTime: " + zonedDateTimeString);
// Parse a ZonedDateTime string
String zonedDateTimeInput = "2024-12-23T14:30:00-05:00[America/New_York]";
ZonedDateTime parsedZonedDateTime = ZonedDateTime.parse(zonedDateTimeInput, DateTimeFormatter.ISO_ZONED_DATE_TIME);
System.out.println("Parsed ZonedDateTime: " + parsedZonedDateTime);
}
}
আউটপুট:
Formatted ZonedDateTime: 2024-12-23T14:30:00-05:00[America/New_York]
Parsed ZonedDateTime: 2024-12-23T14:30:00-05:00[America/New_York]
ব্যাখ্যা:
DateTimeFormatter.ISO_ZONED_DATE_TIME: এটি ISO 8601 স্ট্যান্ডার্ডে টাইমজোন সহZonedDateTimeফরম্যাট করে।ZonedDateTime.parse(): এটি টাইমজোনসহ স্ট্রিংটিকেZonedDateTimeঅবজেক্টে রূপান্তর করে।
DateTimeFormatterক্লাসটি Java 8-এ Date এবং Time এর ফরম্যাটিং এবং পার্সিং কাজকে সহজ এবং শক্তিশালী করে তোলে।- এটি ISO 8601 স্ট্যান্ডার্ড এবং কাস্টম ফরম্যাটের মাধ্যমে তারিখ ও সময়ের মান ফরম্যাট করতে এবং সেগুলোকে স্ট্রিং থেকে অবজেক্টে রূপান্তর করতে সহায়তা করে।
DateTimeFormatter.ofPattern()এর মাধ্যমে আপনি আপনার প্রয়োজন অনুযায়ী কাস্টম ফরম্যাট তৈরি করতে পারেন, এবংDateTimeFormatter.ISO_*এর মাধ্যমে স্ট্যান্ডার্ড ফরম্যাটে কাজ করতে পারেন।
Read more