Predefined এবং Custom Formats

DateTimeFormatter Class - জাভা টাইম প্যাকেজ (Java.time Package) - Java Technologies

288

java.time প্যাকেজটি Java 8 এ যোগ করা হয়েছে এবং এটি তারিখ, সময় এবং সম্পর্কিত কাজগুলির জন্য একটি শক্তিশালী API সরবরাহ করে। এর মধ্যে Instant ক্লাস এবং PredefinedCustom Date-Time Formats এর ব্যবহার খুবই গুরুত্বপূর্ণ। চলুন একে একে আলোচনা করি।

1. Instant Class ব্যবহার:

Instant ক্লাসটি UTC (Coordinated Universal Time) এর একটি নির্দিষ্ট মুহূর্তকে প্রতিনিধিত্ব করে। এটি epoch time (1970-01-01T00:00:00Z) থেকে সেকেন্ড এবং ন্যানোসেকেন্ডের হিসেবে সময় মাপতে ব্যবহৃত হয়।

Instant ব্যবহার করা হয় যখন আপনার টাইমস্ট্যাম্প বা সঠিক সময় পয়েন্ট প্রয়োজন হয়।

Instant ক্লাসের প্রধান মেথডসমূহ:

  • Instant.now(): এটি বর্তমান Instant ফেরত দেয়, অর্থাৎ বর্তমান UTC সময়।
  • Instant.ofEpochSecond(long epochSecond): এটি একটি নির্দিষ্ট epoch সেকেন্ড থেকে Instant তৈরি করে।
  • Instant.ofEpochMilli(long epochMilli): এটি মিলিসেকেন্ডে একটি নির্দিষ্ট epoch সময় থেকে Instant তৈরি করে।
  • toEpochMilli(): এটি Instant কে মিলিসেকেন্ডের মধ্যে epoch time হিসেবে রিটার্ন করে।

Instant ক্লাসের উদাহরণ:

import java.time.Instant;

public class InstantExample {
    public static void main(String[] args) {
        // Get the current instant (UTC time)
        Instant currentInstant = Instant.now();
        System.out.println("Current Instant: " + currentInstant);

        // Convert an epoch second to Instant
        Instant instantFromEpoch = Instant.ofEpochSecond(1620830325);
        System.out.println("Instant from Epoch Second: " + instantFromEpoch);

        // Convert an epoch millisecond to Instant
        Instant instantFromEpochMilli = Instant.ofEpochMilli(1620830325000L);
        System.out.println("Instant from Epoch Millisecond: " + instantFromEpochMilli);

        // Convert Instant to epoch milliseconds
        long epochMilli = currentInstant.toEpochMilli();
        System.out.println("Epoch Milliseconds: " + epochMilli);
    }
}

আউটপুট:

Current Instant: 2024-12-23T10:30:45.123Z
Instant from Epoch Second: 2021-05-12T12:45:25Z
Instant from Epoch Millisecond: 2021-05-12T12:45:25Z
Epoch Milliseconds: 1634316745123

ব্যাখ্যা:

  • Instant.now(): এটি বর্তমান সময় Instant (UTC) ফেরত দেয়।
  • Instant.ofEpochSecond(long epochSecond): এটি নির্দিষ্ট epoch সেকেন্ড থেকে Instant তৈরি করে।
  • Instant.ofEpochMilli(long epochMilli): এটি মিলিসেকেন্ডে নির্দিষ্ট epoch সময় থেকে Instant তৈরি করে।
  • toEpochMilli(): এটি Instant কে মিলিসেকেন্ডে epoch টাইমে রূপান্তরিত করে।

2. Predefined এবং Custom Formats ব্যবহার:

java.time.format.DateTimeFormatter ক্লাসটি তারিখ এবং সময়ের মান প্রদর্শন এবং পার্স করার জন্য ব্যবহৃত হয়। এটি Predefined এবং Custom Formats সাপোর্ট করে।

Predefined Formats:

Java-তে কিছু predefined formats রয়েছে যা ISO স্ট্যান্ডার্ড অনুসরণ করে।

  • ISO_LOCAL_DATE: YYYY-MM-DD (যেমন: 2024-12-23)
  • ISO_LOCAL_TIME: HH:mm:ss (যেমন: 14:30:00)
  • ISO_LOCAL_DATE_TIME: YYYY-MM-DDTHH:mm:ss (যেমন: 2024-12-23T14:30:00)
  • ISO_ZONED_DATE_TIME: 2024-12-23T14:30:00+05:30[Asia/Kolkata]

Custom Formats:

কাস্টম ফরম্যাট তৈরি করতে আপনি DateTimeFormatter.ofPattern("pattern") ব্যবহার করতে পারেন, যেখানে আপনি pattern দিয়ে নিজের ইচ্ছেমতো ফরম্যাট সাজাতে পারেন।

Predefined Format উদাহরণ:

import java.time.*;
import java.time.format.DateTimeFormatter;

public class PredefinedFormatExample {
    public static void main(String[] args) {
        LocalDate date = LocalDate.now();
        LocalTime time = LocalTime.now();
        LocalDateTime dateTime = LocalDateTime.now();

        // ISO Predefined Formats
        System.out.println("ISO_LOCAL_DATE: " + date.format(DateTimeFormatter.ISO_LOCAL_DATE));
        System.out.println("ISO_LOCAL_TIME: " + time.format(DateTimeFormatter.ISO_LOCAL_TIME));
        System.out.println("ISO_LOCAL_DATE_TIME: " + dateTime.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
    }
}

আউটপুট:

ISO_LOCAL_DATE: 2024-12-23
ISO_LOCAL_TIME: 14:30:00
ISO_LOCAL_DATE_TIME: 2024-12-23T14:30:00

Custom Format উদাহরণ:

import java.time.*;
import java.time.format.DateTimeFormatter;

public class CustomFormatExample {
    public static void main(String[] args) {
        LocalDateTime dateTime = LocalDateTime.now();

        // Custom DateTime format
        DateTimeFormatter customFormatter = DateTimeFormatter.ofPattern("dd MMMM yyyy HH:mm:ss");
        String formattedDateTime = dateTime.format(customFormatter);

        System.out.println("Formatted DateTime: " + formattedDateTime);
    }
}

আউটপুট:

Formatted DateTime: 23 December 2024 14:30:00

ব্যাখ্যা:

  • Predefined Format: আপনি DateTimeFormatter.ISO_LOCAL_DATE অথবা অন্যান্য predefined ফরম্যাট ব্যবহার করে সহজেই ISO স্ট্যান্ডার্ড অনুসরণ করা ফরম্যাট পেতে পারেন।
  • Custom Format: আপনি DateTimeFormatter.ofPattern("pattern") ব্যবহার করে নিজের কাস্টম ফরম্যাট তৈরি করতে পারেন। এখানে "dd MMMM yyyy HH:mm:ss" ফরম্যাটে দিন, মাস, বছর, ঘণ্টা, মিনিট এবং সেকেন্ড প্রদর্শন করা হয়েছে।

Pattern Syntax:

  • d: দিন (1-31)
  • M: মাস (1-12)
  • y: বছর
  • H: ঘণ্টা (0-23)
  • m: মিনিট (0-59)
  • s: সেকেন্ড (0-59)
  • a: AM/PM
  • z: সময় অঞ্চল

  • Instant ক্লাসটি UTC সময়ের একটি নির্দিষ্ট মুহূর্ত সংরক্ষণ করে এবং বিভিন্ন সময় সিস্টেমের মধ্যে কনভার্ট করতে ব্যবহৃত হয়।
  • DateTimeFormatter ব্যবহার করে আপনি Predefined এবং Custom তারিখ এবং সময় ফরম্যাট তৈরি ও প্রয়োগ করতে পারেন।
  • Predefined Formats যেমন ISO_LOCAL_DATE, ISO_LOCAL_TIME এবং ISO_LOCAL_DATE_TIME ব্যবহার করে আপনি সহজে ISO স্ট্যান্ডার্ড অনুযায়ী তারিখ ও সময় ফরম্যাট করতে পারেন।
  • Custom Formats দিয়ে আপনি নির্দিষ্ট প্যাটার্নে তারিখ এবং সময় ফরম্যাট করতে পারেন।

এটি Java 8+ তে তারিখ, সময় এবং টাইমস্ট্যাম্পের কাজ করার জন্য একটি অত্যন্ত শক্তিশালী এবং কার্যকরী API।

Content added By
Promotion

Are you sure to start over?

Loading...