DateTimeFormatter ক্লাসটি java.time.format প্যাকেজের একটি অংশ যা Java 8 থেকে শুরু হয়েছে। এটি Date এবং Time এর জন্য একটি ফরম্যাটিং এবং পার্সিং টুল সরবরাহ করে, যা তারিখ এবং সময়কে নির্দিষ্ট ফরম্যাটে রূপান্তর (format) বা পাঠ (parse) করতে ব্যবহৃত হয়।
DateTimeFormatter কী?
DateTimeFormatter হল একটি ক্লাস যা ব্যবহারকারীদের LocalDate, LocalTime, LocalDateTime, ZonedDateTime ইত্যাদি তারিখ এবং সময় ক্লাসগুলোকে নির্দিষ্ট ফরম্যাটে রূপান্তর করতে সহায়তা করে। এর মাধ্যমে আপনি সহজেই তারিখ এবং সময়ের মানকে String এ রূপান্তর করতে পারেন অথবা String থেকে DateTime অবজেক্টে রূপান্তর করতে পারেন।
DateTimeFormatter এর কাজ:
- Format: এটি একটি DateTime অবজেক্টকে String এ রূপান্তর করে।
- Parse: এটি একটি String থেকে DateTime অবজেক্টে রূপান্তর করে।
DateTimeFormatter তৈরি করার উপায়:
- Predefined Formatters:
DateTimeFormatter.ISO_LOCAL_DATE,DateTimeFormatter.ISO_LOCAL_TIME,DateTimeFormatter.ISO_LOCAL_DATE_TIMEইত্যাদি পূর্বনির্ধারিত ফরম্যাট ব্যবহার করা যায়।
- Custom Formatters:
- আপনি কাস্টম ফরম্যাটও তৈরি করতে পারেন যেমন
yyyy-MM-dd HH:mm:ssঅথবাdd/MM/yyyy.
- আপনি কাস্টম ফরম্যাটও তৈরি করতে পারেন যেমন
DateTimeFormatter এর ব্যবহার উদাহরণ:
1. তারিখ এবং সময় ফরম্যাটিং (Formatting DateTime)
import java.time.*;
import java.time.format.DateTimeFormatter;
public class DateTimeFormatterExample {
public static void main(String[] args) {
// বর্তমান তারিখ এবং সময়
LocalDateTime currentDateTime = LocalDateTime.now();
System.out.println("Current DateTime: " + currentDateTime);
// Custom DateTime Formatter
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = currentDateTime.format(formatter);
System.out.println("Formatted DateTime: " + formattedDateTime);
}
}
আউটপুট:
Current DateTime: 2024-12-23T15:45:30.123
Formatted DateTime: 2024-12-23 15:45:30
ব্যাখ্যা:
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"): এটি একটি কাস্টম ফরম্যাটার তৈরি করে, যা তারিখ এবং সময়কেyyyy-MM-dd HH:mm:ssফরম্যাটে রূপান্তর করবে।format()মেথডটিLocalDateTimeঅবজেক্টটিকে একটি String ফরম্যাটে রূপান্তর করে।
2. String থেকে DateTime Parsing (DateTime Parsing)
এখন, ধরুন আপনি একটি তারিখ এবং সময়ের স্ট্রিং পাবেন এবং সেই স্ট্রিংটি একটি DateTime অবজেক্টে রূপান্তর করতে চান।
import java.time.*;
import java.time.format.DateTimeFormatter;
public class DateTimeParsingExample {
public static void main(String[] args) {
// String format date
String dateTimeString = "2024-12-23 15:45:30";
// Custom DateTime Formatter for parsing
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// Parse the string into LocalDateTime
LocalDateTime parsedDateTime = LocalDateTime.parse(dateTimeString, formatter);
System.out.println("Parsed DateTime: " + parsedDateTime);
}
}
আউটপুট:
Parsed DateTime: 2024-12-23T15:45:30
ব্যাখ্যা:
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"): একইভাবে এখানে একটি কাস্টম ফরম্যাটার তৈরি করা হয়েছে।parse()মেথডটি স্ট্রিংটি একটিLocalDateTimeঅবজেক্টে রূপান্তরিত করে।
3. Standard Formatters:
Java-তে কিছু standard formatters রয়েছে যেগুলো ISO 8601 স্ট্যান্ডার্ড অনুসরণ করে এবং সহজেই ব্যবহৃত হতে পারে।
import java.time.*;
import java.time.format.DateTimeFormatter;
public class StandardDateTimeFormatter {
public static void main(String[] args) {
// Get the current date and time
ZonedDateTime zonedDateTime = ZonedDateTime.now();
System.out.println("Current ZonedDateTime: " + zonedDateTime);
// Use ISO standard formatter
DateTimeFormatter isoFormatter = DateTimeFormatter.ISO_ZONED_DATE_TIME;
String formattedDateTime = zonedDateTime.format(isoFormatter);
System.out.println("Formatted ZonedDateTime (ISO): " + formattedDateTime);
}
}
আউটপুট:
Current ZonedDateTime: 2024-12-23T15:45:30.123+05:30[Asia/Kolkata]
Formatted ZonedDateTime (ISO): 2024-12-23T15:45:30.123+05:30[Asia/Kolkata]
ব্যাখ্যা:
DateTimeFormatter.ISO_ZONED_DATE_TIME: এটি ISO স্ট্যান্ডার্ড অনুযায়ীZonedDateTimeফরম্যাট করে।
কাস্টম ফরম্যাটিং (Custom Formatting) উদাহরণ:
import java.time.*;
import java.time.format.DateTimeFormatter;
public class CustomDateTimeFormatter {
public static void main(String[] args) {
// বর্তমান তারিখ এবং সময়
LocalDateTime currentDateTime = LocalDateTime.now();
// কাস্টম ফরম্যাট ব্যবহার
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss");
String formattedDateTime = currentDateTime.format(formatter);
// আউটপুট
System.out.println("Formatted DateTime: " + formattedDateTime);
}
}
আউটপুট:
Formatted DateTime: 23-12-2024 15:45:30
DateTimeFormatter এর প্রধান ফরম্যাটিং প্যাটার্ন:
- yyyy: ৪ অঙ্কের বছর (যেমন: 2024)
- MM: মাস (যেমন: 12)
- dd: দিন (যেমন: 23)
- HH: ঘণ্টা (24 ঘণ্টার ফরম্যাট)
- mm: মিনিট
- ss: সেকেন্ড
- SSS: মিলিসেকেন্ড
- z: সময় অঞ্চল (যেমন: UTC, PST)
DateTimeFormatter একটি শক্তিশালী ক্লাস যা Java 8 থেকে তারিখ এবং সময়ের ফরম্যাটিং এবং পার্সিংয়ের জন্য ব্যবহৃত হয়। আপনি কাস্টম এবং স্ট্যান্ডার্ড ফরম্যাটে তারিখ এবং সময়ের মান রূপান্তর করতে পারেন। এটি ব্যবহারে আপনি তারিখ এবং সময়ের মানকে পাঠযোগ্য স্ট্রিংয়ে রূপান্তর করতে পারেন এবং স্ট্রিং থেকে তারিখ বা সময়ও পুনরুদ্ধার করতে পারেন, যা Java Time API কে আরও শক্তিশালী এবং কার্যকরী করে তোলে।
Read more