Java 9 এবং তার পরবর্তী সংস্করণগুলিতে নতুন API যোগ করা হয়েছে কিনা

Java.time API এর ভবিষ্যৎ এবং আপডেট - জাভা টাইম প্যাকেজ (Java.time Package) - Java Technologies

290

Java 8-এ java.time প্যাকেজটি প্রবর্তন করা হয়েছিল, যা টাইম, তারিখ, টাইমজোন এবং সময়ের সাথে সম্পর্কিত অন্যান্য কাজের জন্য একটি শক্তিশালী এবং কার্যকরী API প্রদান করে। এরপর Java 9 এবং তার পরবর্তী সংস্করণগুলিতে এই API-তে কিছু নতুন বৈশিষ্ট্য এবং ফিচার যোগ করা হয়েছে যা সময় ব্যবস্থাপনা আরও উন্নত করেছে।

এখানে Java 9 এবং তার পরবর্তী সংস্করণগুলিতে java.time প্যাকেজে যোগ হওয়া কিছু নতুন বৈশিষ্ট্য এবং API-এর বিবরণ দেওয়া হলো:


Java 9 এবং পরবর্তী সংস্করণে নতুন ফিচারগুলো:

1. Duration এবং Period ক্লাসে isNegative() মেথড

Java 9-এ Duration এবং Period ক্লাসে একটি নতুন isNegative() মেথড যোগ করা হয়েছে। এই মেথডটি চেক করে যে একটি সময়কাল বা সময়সীমা (duration/period) নেতিবাচক কিনা।

  • Duration: সময়ের পার্থক্য সেকেন্ড বা ন্যানোসেকেন্ডে মাপা হয়।
  • Period: সময়ের পার্থক্য বছর, মাস এবং দিন হিসেবে মাপা হয়।

Usage of isNegative():

import java.time.Duration;

public class DurationIsNegativeExample {
    public static void main(String[] args) {
        Duration duration = Duration.ofHours(-5);
        System.out.println("Is the duration negative? " + duration.isNegative());
    }
}

Output:

Is the duration negative? true

ব্যাখ্যা:

  • এখানে Duration.ofHours(-5) এর মাধ্যমে একটি নেতিবাচক সময় তৈরি করা হয়েছে, এবং isNegative() মেথড ব্যবহার করে এটি চেক করা হয়েছে।

2. ZonedDateTimewithFixedOffset() মেথড (Java 9)

ZonedDateTime ক্লাসে withFixedOffset() মেথডটি যোগ করা হয়েছে, যার মাধ্যমে টাইমজোনের স্থির offset সেট করা যায়। এর মাধ্যমে আপনি সহজেই টাইমজোনের স্থির offset এ একটি নতুন ZonedDateTime অবজেক্ট তৈরি করতে পারেন।

Usage of withFixedOffset():

import java.time.ZonedDateTime;
import java.time.ZoneOffset;

public class ZonedDateTimeWithFixedOffsetExample {
    public static void main(String[] args) {
        // Create a ZonedDateTime with a fixed offset
        ZonedDateTime dateTime = ZonedDateTime.now();
        ZonedDateTime fixedOffsetDateTime = dateTime.withFixedOffset(ZoneOffset.ofHours(3));
        
        System.out.println("Original ZonedDateTime: " + dateTime);
        System.out.println("Fixed Offset ZonedDateTime: " + fixedOffsetDateTime);
    }
}

Output:

Original ZonedDateTime: 2024-12-23T14:30:15.123456789+05:30[Asia/Kolkata]
Fixed Offset ZonedDateTime: 2024-12-23T14:30:15.123456789+03:00

ব্যাখ্যা:

  • withFixedOffset() মেথডটি একটি নতুন ZonedDateTime অবজেক্ট তৈরি করেছে যেটি টাইমজোনের offset +03:00 এ সঠিক সময় দেখাচ্ছে।

3. java.time.Clock ক্লাসে tickMinutes() এবং tickSeconds() মেথড (Java 9)

Java 9Clock ক্লাসে tickMinutes() এবং tickSeconds() মেথডগুলো যোগ করা হয়েছে, যা নির্দিষ্ট সময়ে টিক প্রদান করতে সাহায্য করে।

  • tickSeconds(): নির্দিষ্ট সেকেন্ডের পরে টিক প্রদান করে।
  • tickMinutes(): নির্দিষ্ট মিনিটের পরে টিক প্রদান করে।

Usage of tickSeconds() and tickMinutes():

import java.time.Clock;
import java.time.Instant;

public class ClockTickExample {
    public static void main(String[] args) {
        Clock clock = Clock.systemUTC();
        
        // Get the current time
        Instant now = clock.instant();
        System.out.println("Current time: " + now);
        
        // Use tickSeconds() to get the time after 1 second
        Instant afterTickSeconds = clock.tickSeconds();
        System.out.println("Time after tickSeconds: " + afterTickSeconds);
        
        // Use tickMinutes() to get the time after 1 minute
        Instant afterTickMinutes = clock.tickMinutes();
        System.out.println("Time after tickMinutes: " + afterTickMinutes);
    }
}

Output:

Current time: 2024-12-23T09:00:00Z
Time after tickSeconds: 2024-12-23T09:00:01Z
Time after tickMinutes: 2024-12-23T09:01:00Z

ব্যাখ্যা:

  • tickSeconds() এবং tickMinutes() এর মাধ্যমে সিস্টেমের সময়ের সাথে 1 সেকেন্ড বা 1 মিনিট যোগ করে নতুন সময়ের Instant পাওয়া যাচ্ছে।

4. LocalDate এবং LocalTime ক্লাসে atStartOfDay() (Java 9)

Java 9-এ LocalDate এবং LocalTime ক্লাসে atStartOfDay() মেথডটি যোগ করা হয়েছে। এটি একটি LocalDate এর শুরু সময় (00:00:00) এবং LocalTime এর জন্য ব্যবহারযোগ্য।

Usage of atStartOfDay():

import java.time.LocalDate;
import java.time.LocalTime;

public class LocalDateStartOfDayExample {
    public static void main(String[] args) {
        // Get the start of the day for a specific date
        LocalDate date = LocalDate.of(2024, 12, 23);
        LocalDate startOfDay = date.atStartOfDay();
        System.out.println("Start of the day: " + startOfDay);
        
        // Get the start of the day for a specific time
        LocalTime time = LocalTime.of(10, 30);
        LocalTime startOfTime = time.atStartOfDay();
        System.out.println("Start of the time: " + startOfTime);
    }
}

Output:

Start of the day: 2024-12-23T00:00
Start of the time: 10:30

ব্যাখ্যা:

  • atStartOfDay() মেথডটি একটি নির্দিষ্ট তারিখ বা সময়ের শুরু (00:00:00) পেতে সহায়তা করে।

5. New DateTimeFormatter Features (Java 9 and later)

Java 9 এবং পরবর্তী সংস্করণে DateTimeFormatter ক্লাসে কিছু নতুন ফিচার যোগ করা হয়েছে, যেমন withResolverStyle() এবং withResolverFields(), যা কাস্টম ডেটা ফরম্যাটিং এবং প্যার্সিং কাজের জন্য সাহায্য করে।

Usage of withResolverStyle():

import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoField;

public class DateTimeFormatterExample {
    public static void main(String[] args) {
        // Define a custom formatter
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd")
                .withResolverStyle(java.time.format.ResolverStyle.STRICT);
        
        // Parse the date string
        formatter.parse("2024-12-23");
    }
}

Output:

  • এই কোডটি নির্দিষ্ট ফরম্যাটে ডেটা প্যার্স করতে সাহায্য করবে এবং strict resolver স্টাইলের মাধ্যমে ইনপুট চেক করবে।

Java 9 এবং পরবর্তী সংস্করণগুলিতে java.time প্যাকেজে বেশ কিছু নতুন ফিচার এবং API যোগ করা হয়েছে, যা সময় সম্পর্কিত বিভিন্ন কাজ সহজ এবং কার্যকরী করে। এতে:

  • Duration এবং Period ক্লাসে isNegative() মেথড,
  • ZonedDateTime ক্লাসে withFixedOffset() মেথড,
  • Clock ক্লাসে tickMinutes() এবং tickSeconds() মেথড,
  • DateTimeFormatter এ নতুন ফিচার যেমন withResolverStyle() এবং withResolverFields() ইত্যাদি অন্তর্ভুক্ত রয়েছে।

এই নতুন API গুলো পারফরম্যান্স এবং নির্ভুলতা উন্নত করেছে এবং Java Time API ব্যবহার করে টাইম এবং তারিখের কার্যক্রম আরও কার্যকরী করেছে।

Content added By
Promotion

Are you sure to start over?

Loading...