Epoch Time এবং Instant এর মাধ্যমে নির্দিষ্ট মুহূর্তের কাজ

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

269

Instant এবং Epoch Time হল Java 8 থেকে java.time প্যাকেজে পরিচিত কিছু গুরুত্বপূর্ণ সময় সম্পর্কিত ধারণা। Instant ক্লাস এবং Epoch Time (Unix Time) সময়ের একটি নির্দিষ্ট মুহূর্ত প্রতিনিধিত্ব করে, যা UTC (Coordinated Universal Time) থেকে সেকেন্ড এবং ন্যানোসেকেন্ডের হিসাব অনুযায়ী নির্ধারিত হয়।

1. Epoch Time (Unix Time)

Epoch Time বা Unix Time হলো 1970 সালের জানুয়ারির 1 তারিখ (00:00:00 UTC) থেকে শুরু হওয়া সেকেন্ড এবং ন্যানোসেকেন্ডের সংখ্যা। এটি পৃথিবীজুড়ে কম্পিউটার সিস্টেমে সময় ট্র্যাক করার একটি সাধারণ পদ্ধতি। সাধারণত এটি সেকেন্ড হিসেবেই ব্যবহৃত হয় (যদিও কিছু সিস্টেম ন্যানোসেকেন্ড পর্যন্ত হিসেব করে থাকে)।

2. Instant ক্লাস:

Instant ক্লাসটি java.time প্যাকেজে একটি নির্দিষ্ট সময় মুহূর্তের প্রতিনিধিত্ব করে। এটি UTC টাইমজোনে একটি নির্দিষ্ট মুহূর্তের epoch second (যা 1970 সালের জানুয়ারি 1 থেকে গণনা শুরু হয়) এবং nanosecond হিসেবে সময় ধারণ করে।

Instant এর ফিচারস:

  • Instant মূলত ইউনিভার্সাল সময় (UTC) দিয়ে কাজ করে।
  • এটি শুধুমাত্র একটি নির্দিষ্ট মুহূর্তের প্রতিনিধিত্ব করে, কোনো টাইমজোন বা স্থানীয় সময় ধারণ করে না।
  • Instant কখনো টাইমজোন নির্ভরশীল নয়, তাই এটি ZonedDateTime বা LocalDateTime এর তুলনায় একটি নির্দিষ্ট সময় মুহূর্তের একটি অপরিবর্তনীয় রেফারেন্স।

Instant ক্লাসের ব্যবহার:

  • Instant.now() - বর্তমান সময়ের একটি Instant অবজেক্ট তৈরি করে।
  • Instant.ofEpochSecond() - এক্সেপ্ট সেকেন্ড থেকে Instant তৈরি করে।
  • Instant.ofEpochMilli() - মিলিসেকেন্ড থেকে Instant তৈরি করে।
  • Instant.plus() এবং Instant.minus() - সময় যোগ এবং বিয়োগ করার জন্য।

Instant দিয়ে নির্দিষ্ট সময় কাজ করা

Example 1: Instant.now()

Instant.now() মেথডটি বর্তমান সময়ের Instant অবজেক্ট তৈরি করে যা epoch second এবং nanosecond হিসেবে নির্দিষ্ট।

import java.time.Instant;

public class InstantNowExample {
    public static void main(String[] args) {
        // Get current time as Instant
        Instant now = Instant.now();
        System.out.println("Current Instant: " + now);
    }
}

Output:

Current Instant: 2024-12-23T09:15:30.123456789Z

ব্যাখ্যা:

  • Instant.now() বর্তমান সময় এবং UTC টাইমজোনে একটি Instant অবজেক্ট তৈরি করে।

Example 2: Instant.ofEpochSecond()

Instant.ofEpochSecond() মেথডটি epoch second (1970 সালের জানুয়ারির 1 তারিখ থেকে সেকেন্ড হিসাবে পরিমাপ করা) থেকে একটি Instant তৈরি করে।

import java.time.Instant;

public class InstantEpochExample {
    public static void main(String[] args) {
        // Create Instant from epoch second
        Instant instant = Instant.ofEpochSecond(1609459200);  // January 1, 2021 00:00:00 UTC
        System.out.println("Instant from epoch second: " + instant);
    }
}

Output:

Instant from epoch second: 2021-01-01T00:00:00Z

ব্যাখ্যা:

  • Instant.ofEpochSecond(1609459200) ব্যবহার করে 2021 সালের জানুয়ারি 1 তারিখ, 00:00:00 UTC সময়কে Instant অবজেক্ট হিসেবে তৈরি করা হয়েছে। এখানে 1609459200 হলো Unix epoch থেকে 2021-01-01T00:00:00 এর সেকেন্ড।

Example 3: Instant.ofEpochMilli()

Instant.ofEpochMilli() মেথডটি epoch milliseconds (1970 সালের জানুয়ারির 1 তারিখ থেকে মিলিসেকেন্ড হিসাবে পরিমাপ করা) থেকে একটি Instant তৈরি করে।

import java.time.Instant;

public class InstantEpochMilliExample {
    public static void main(String[] args) {
        // Create Instant from epoch milliseconds
        Instant instant = Instant.ofEpochMilli(1609459200000L); // January 1, 2021 00:00:00 UTC
        System.out.println("Instant from epoch milliseconds: " + instant);
    }
}

Output:

Instant from epoch milliseconds: 2021-01-01T00:00:00Z

ব্যাখ্যা:

  • Instant.ofEpochMilli(1609459200000L) ব্যবহার করে 2021 সালের জানুয়ারি 1 তারিখ, 00:00:00 UTC সময়কে Instant অবজেক্ট হিসেবে তৈরি করা হয়েছে। এখানে 1609459200000L হলো Unix epoch থেকে 2021-01-01T00:00:00 এর মিলিসেকেন্ড।

Example 4: Adding and Subtracting Time from Instant

Instant এ সময় যোগ বা বিয়োগ করতে plus() এবং minus() মেথড ব্যবহার করা হয়।

import java.time.Instant;

public class InstantPlusMinusExample {
    public static void main(String[] args) {
        // Get current time as Instant
        Instant now = Instant.now();
        System.out.println("Current Instant: " + now);
        
        // Add 2 hours to the current Instant
        Instant futureTime = now.plusSeconds(2 * 60 * 60);  // Adding 2 hours (in seconds)
        System.out.println("Future Time (after 2 hours): " + futureTime);
        
        // Subtract 3 days from the current Instant
        Instant pastTime = now.minusSeconds(3 * 24 * 60 * 60);  // Subtracting 3 days (in seconds)
        System.out.println("Past Time (3 days ago): " + pastTime);
    }
}

Output:

Current Instant: 2024-12-23T10:30:15.123456789Z
Future Time (after 2 hours): 2024-12-23T12:30:15.123456789Z
Past Time (3 days ago): 2024-12-20T10:30:15.123456789Z

ব্যাখ্যা:

  • plusSeconds(2 * 60 * 60) 2 ঘণ্টা যোগ করেছে, এবং minusSeconds(3 * 24 * 60 * 60) 3 দিন বিয়োগ করেছে।

Instant এর ভূমিকা এবং ব্যবহার

  • Time Representation: Instant ক্লাসটি UTC টাইমজোনে সময়ের একটি নির্দিষ্ট মুহূর্ত প্রতিনিধিত্ব করে।
  • Epoch Time: এটি epoch second এবং nanosecond থেকে সময় নির্ধারণ করে।
  • Timestamping: সাধারণত এটি টেম্পোরাল ডেটাবেসের timestamp হিসাবে ব্যবহৃত হয়।
  • Time Arithmetic: Instant ব্যবহার করে সেকেন্ড বা মিলিসেকেন্ডে সময় যোগ বা বিয়োগ করা যায়, যা সময়ের নির্দিষ্ট মুহূর্তের জন্য উপযোগী।

  • Instant ক্লাসটি সময়ের একটি নির্দিষ্ট মুহূর্তকে UTC টাইমজোনে প্রতিনিধিত্ব করে।
  • এটি epoch time (Unix time) এবং nanosecond precision সহ সময় পরিচালনা করতে সাহায্য করে।
  • Instant কে টাইমজোন নির্ধারণ করতে ZonedDateTime বা OffsetDateTime এর সাথে ব্যবহার করা যেতে পারে, তবে এটি নিজে কোন টাইমজোন ধারণ করে না।
Content added By
Promotion

Are you sure to start over?

Loading...