OffsetDateTime এর ধারণা এবং ব্যবহার

TimeZone এবং Offset Management - জাভা টাইম প্যাকেজ (Java.time Package) - Java Technologies

286

OffsetDateTime হল java.time প্যাকেজের একটি গুরুত্বপূর্ণ ক্লাস, যা তারিখ (date) এবং সময় (time) ধারণ করার সাথে সাথে একটি নির্দিষ্ট অফসেট (UTC offset) ধারণ করে। এটি ISO 8601 ফরম্যাটে তারিখ এবং সময় পরিচালনা করে এবং সময় অঞ্চল সম্পর্কিত অতিরিক্ত তথ্য (যেমন UTC-offset) প্রদান করে।

OffsetDateTime ক্লাসটি ZonedDateTime ক্লাসের মতোই কাজ করে, তবে এর মধ্যে সময় অঞ্চলের নামের পরিবর্তে UTC-offset ব্যবহৃত হয় (যেমন: +02:00, -03:00 ইত্যাদি)।

OffsetDateTime এর ধারণা:

  • OffsetDateTime সময় এবং তারিখ ধারণ করে, এবং এই সময়টি একটি নির্দিষ্ট UTC-offset (সময়সীমা) সহ থাকে।
  • এটি ZonedDateTime এর মতোই কাজ করে, তবে এর মধ্যে অঞ্চল সম্পর্কিত নামের পরিবর্তে সরাসরি ZoneOffset ব্যবহার করা হয়।
  • এটি সাধারণত বিশ্বব্যাপী (global) বা distributed systems এর ক্ষেত্রে ব্যবহার করা হয়, যেখানে সময়ের সঙ্গে UTC-offset নির্ধারণ করা গুরুত্বপূর্ণ।

OffsetDateTime এর প্রধান মেথড:

  1. now(): বর্তমান তারিখ এবং সময় পাওয়ার জন্য।
  2. of(): নির্দিষ্ট তারিখ, সময় এবং UTC-offset দিয়ে OffsetDateTime অবজেক্ট তৈরি করা।
  3. withOffsetSameInstant(): নতুন UTC-offset সহ একই সময়ের অবজেক্ট তৈরি করা।
  4. toInstant(): OffsetDateTime কে Instant টাইমস্ট্যাম্পে কনভার্ট করা।
  5. getOffset(): UTC-offset ফিরে পাওয়া।

OffsetDateTime উদাহরণ:

1. বর্তমান OffsetDateTime পাওয়া:

import java.time.OffsetDateTime;
import java.time.ZoneOffset;

public class OffsetDateTimeExample {
    public static void main(String[] args) {
        // Get the current OffsetDateTime with the system default offset
        OffsetDateTime currentDateTime = OffsetDateTime.now();
        System.out.println("Current Date and Time with Offset: " + currentDateTime);
    }
}

আউটপুট:

Current Date and Time with Offset: 2024-12-23T14:35:20.345+05:30

এখানে:

  • +05:30 হলো UTC offset, যা নির্দেশ করে সময় UTC থেকে 5 ঘণ্টা 30 মিনিট এগিয়ে।

2. একটি নির্দিষ্ট OffsetDateTime তৈরি করা:

import java.time.OffsetDateTime;
import java.time.ZoneOffset;

public class OffsetDateTimeExample {
    public static void main(String[] args) {
        // Create an OffsetDateTime with a specific date, time and offset
        OffsetDateTime dateTime = OffsetDateTime.of(2024, 12, 23, 14, 30, 0, 0, ZoneOffset.ofHours(5));
        System.out.println("Specific Date and Time with Offset: " + dateTime);
    }
}

আউটপুট:

Specific Date and Time with Offset: 2024-12-23T14:30:00+05:00

এখানে:

  • ZoneOffset.ofHours(5) একটি UTC-offset 5 ঘণ্টা এগিয়ে নির্দেশ করছে।
  • OffsetDateTime.of() মেথডটি একটি নির্দিষ্ট তারিখ, সময় এবং UTC-offset নিয়ে OffsetDateTime অবজেক্ট তৈরি করেছে।

3. OffsetDateTime এর সময় পরিবর্তন করা:

import java.time.OffsetDateTime;
import java.time.ZoneOffset;

public class OffsetDateTimeExample {
    public static void main(String[] args) {
        // Create the initial OffsetDateTime object
        OffsetDateTime dateTime = OffsetDateTime.of(2024, 12, 23, 14, 30, 0, 0, ZoneOffset.ofHours(5));
        System.out.println("Original Date and Time with Offset: " + dateTime);
        
        // Add 3 hours to the original time
        OffsetDateTime newDateTime = dateTime.plusHours(3);
        System.out.println("Date and Time after adding 3 hours: " + newDateTime);
        
        // Subtract 2 days from the original time
        OffsetDateTime earlierDateTime = dateTime.minusDays(2);
        System.out.println("Date and Time after subtracting 2 days: " + earlierDateTime);
    }
}

আউটপুট:

Original Date and Time with Offset: 2024-12-23T14:30:00+05:00
Date and Time after adding 3 hours: 2024-12-23T17:30:00+05:00
Date and Time after subtracting 2 days: 2024-12-21T14:30:00+05:00

এখানে:

  • plusHours(3) মেথডটি 3 ঘণ্টা যোগ করেছে।
  • minusDays(2) মেথডটি 2 দিন বিয়োগ করেছে।

4. ZonedDateTime থেকে OffsetDateTime এ কনভার্ট করা:

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

public class OffsetDateTimeExample {
    public static void main(String[] args) {
        // Get current ZonedDateTime
        ZonedDateTime zonedDateTime = ZonedDateTime.now();
        
        // Convert ZonedDateTime to OffsetDateTime with the same instant but different offset
        OffsetDateTime offsetDateTime = zonedDateTime.toOffsetDateTime();
        System.out.println("Converted OffsetDateTime: " + offsetDateTime);
    }
}

আউটপুট:

Converted OffsetDateTime: 2024-12-23T14:35:20.345+05:30

এখানে:

  • toOffsetDateTime() মেথডটি ZonedDateTime কে OffsetDateTime এ কনভার্ট করেছে।

5. Instant থেকে OffsetDateTime কনভার্ট করা:

import java.time.Instant;
import java.time.OffsetDateTime;
import java.time.ZoneOffset;

public class OffsetDateTimeExample {
    public static void main(String[] args) {
        // Get current Instant
        Instant instant = Instant.now();
        
        // Convert Instant to OffsetDateTime with a specified offset
        OffsetDateTime offsetDateTime = instant.atOffset(ZoneOffset.ofHours(5));
        System.out.println("Converted OffsetDateTime from Instant: " + offsetDateTime);
    }
}

আউটপুট:

Converted OffsetDateTime from Instant: 2024-12-23T14:35:20.345+05:00

এখানে:

  • Instant.now() থেকে পাওয়া সময় ZoneOffset.ofHours(5) দ্বারা UTC+5 সময় অঞ্চলে কনভার্ট করা হয়েছে।

  • OffsetDateTime সময় এবং তারিখের একটি শক্তিশালী ক্লাস যা UTC-offset সহ সময় পরিচালনা করতে সহায়তা করে।
  • এটি ব্যবহার করে আপনি সময়ের যোগ-বিয়োগ, সময়ের কনভার্সন (যেমন: ZonedDateTime থেকে OffsetDateTime), এবং সময় অঞ্চলের সাথে সময় মানানসই করা সহ বিভিন্ন কাজ করতে পারবেন।
  • ZoneOffset ক্লাসটি UTC-offset প্রতিনিধিত্ব করে এবং সময় অঞ্চলের পরিবর্তে ব্যবহৃত হয়।
Content added By
Promotion

Are you sure to start over?

Loading...