Instant ক্লাসটি Java 8-এ java.time প্যাকেজের অংশ হিসাবে প্রবর্তিত হয়েছে এবং এটি UTC (Coordinated Universal Time) বা Epoch সময়ের ভিত্তিতে পূর্ণ সূক্ষ্মতার সাথে সময় (Timestamp) প্রতিনিধিত্ব করে। Instant ক্লাসটি টাইমজোন এবং লোকাল টাইমের সাথে সম্পর্কিত নয়, বরং এটি সময়ের নির্দিষ্ট মুহূর্ত (moment) বা ইভেন্টের প্রতিনিধিত্ব করে, যা একটি নির্দিষ্ট মুহূর্তের সাথে সম্পর্কিত সেকেন্ড এবং ন্যানোসেকেন্ড গণনা করে।
Instant ক্লাসের ভূমিকা:
Instantক্লাসটি মূলত টাইমস্ট্যাম্প (timestamp) বা Unix epoch time প্রতিনিধিত্ব করে, যা 1970 সালের 1 জানুয়ারি, 00:00:00 UTC থেকে সেকেন্ড এবং ন্যানোসেকেন্ডের পরিমাণ গণনা করে।- এটি UTC তে সুনির্দিষ্ট সময় (একটি মুহূর্ত) প্রতিনিধিত্ব করতে ব্যবহৃত হয়।
Instantক্লাসটি সাধারণত লগ, ট্রানজেকশন, বা সিস্টেমের সময় সিলোচুক্তির জন্য ব্যবহৃত হয়, যেখানে টাইমস্ট্যাম্পের ভিত্তিতে ঘটনার বিশ্লেষণ বা লগ করা হয়।
Instant ক্লাসের ব্যবহার:
Instant ক্লাসের মাধ্যমে আপনি একটি নির্দিষ্ট সময়ে পৌঁছানোর জন্য সময় যোগ বা কমানোর কাজ করতে পারেন, এবং এটি অন্যান্য সময়ের ক্লাসের সাথে তুলনা করা যায়। এটি টাইমস্ট্যাম্প হিসেবে ডেটা স্টোর করতে ব্যবহৃত হতে পারে, বিশেষ করে যখন নির্দিষ্ট সময়ের সাথে সিস্টেমের ইভেন্ট লগ করতে হয়।
Instant ক্লাসের প্রধান মেথডসমূহ:
now(): বর্তমান সময়কেInstantহিসেবে পেতে ব্যবহৃত হয়।ofEpochSecond(long epochSecond): নির্দিষ্ট epoch second থেকেInstantতৈরি করে।plusSeconds(long seconds): নির্দিষ্ট সেকেন্ড যোগ করে একটি নতুনInstantতৈরি করে।minusSeconds(long seconds): নির্দিষ্ট সেকেন্ড বিয়োগ করে একটি নতুনInstantতৈরি করে।getEpochSecond():Instantএর epoch second (সেকেন্ড) রিটার্ন করে।toEpochMilli():Instantকে মিলিসেকেন্ডে কনভার্ট করে।
Instant এর উদাহরণ:
1. now() Method: বর্তমান সময়ের Instant তৈরি করা
import java.time.Instant;
public class InstantExample {
public static void main(String[] args) {
// Get the current Instant
Instant now = Instant.now();
System.out.println("Current Instant: " + now);
}
}
Output:
Current Instant: 2024-12-23T10:15:30.123456Z
ব্যাখ্যা:
Instant.now()বর্তমান সময়ের UTC ভিত্তিকInstantঅবজেক্ট রিটার্ন করে, যা সেকেন্ড এবং ন্যানোসেকেন্ডের সঠিক সময় প্রদান করে।
2. ofEpochSecond(long epochSecond) Method: Epoch সেকেন্ড থেকে Instant তৈরি করা
import java.time.Instant;
public class InstantEpochExample {
public static void main(String[] args) {
// Create an Instant from a specific epoch second
Instant instant = Instant.ofEpochSecond(1609459200); // Unix epoch: 2021-01-01T00:00:00Z
System.out.println("Instant from Epoch Second: " + instant);
}
}
Output:
Instant from Epoch Second: 2021-01-01T00:00:00Z
ব্যাখ্যা:
Instant.ofEpochSecond(1609459200)Unix epoch টাইম (যা 2021 সালের জানুয়ারি 1 তারিখে পরিবর্তিত হয়) থেকেInstantতৈরি করে।
3. plusSeconds(long seconds) Method: সেকেন্ড যোগ করা
import java.time.Instant;
public class InstantPlusSecondsExample {
public static void main(String[] args) {
Instant now = Instant.now();
System.out.println("Current Instant: " + now);
// Add 100 seconds to the current Instant
Instant futureInstant = now.plusSeconds(100);
System.out.println("Instant after 100 seconds: " + futureInstant);
}
}
Output:
Current Instant: 2024-12-23T10:15:30.123456Z
Instant after 100 seconds: 2024-12-23T10:17:10.123456Z
ব্যাখ্যা:
plusSeconds(100)মেথডটি বর্তমানInstantএর সাথে 100 সেকেন্ড যোগ করে এবং একটি নতুনInstantতৈরি করে।
4. minusSeconds(long seconds) Method: সেকেন্ড বিয়োগ করা
import java.time.Instant;
public class InstantMinusSecondsExample {
public static void main(String[] args) {
Instant now = Instant.now();
System.out.println("Current Instant: " + now);
// Subtract 50 seconds from the current Instant
Instant pastInstant = now.minusSeconds(50);
System.out.println("Instant before 50 seconds: " + pastInstant);
}
}
Output:
Current Instant: 2024-12-23T10:15:30.123456Z
Instant before 50 seconds: 2024-12-23T10:14:40.123456Z
ব্যাখ্যা:
minusSeconds(50)মেথডটি বর্তমানInstantথেকে 50 সেকেন্ড বিয়োগ করে একটি নতুনInstantতৈরি করে।
5. toEpochMilli() Method: Instant কে মিলিসেকেন্ডে কনভার্ট করা
import java.time.Instant;
public class InstantToEpochMilliExample {
public static void main(String[] args) {
Instant now = Instant.now();
System.out.println("Current Instant: " + now);
// Convert Instant to epoch milliseconds
long epochMilli = now.toEpochMilli();
System.out.println("Epoch Milliseconds: " + epochMilli);
}
}
Output:
Current Instant: 2024-12-23T10:15:30.123456Z
Epoch Milliseconds: 1703356530123
ব্যাখ্যা:
toEpochMilli()মেথডটিInstantকে মিলিসেকেন্ডে রূপান্তর করে, যা epoch time হিসাবে পরিচিত।
Instant এর প্রধান সুবিধা:
- UTC ভিত্তিক সময়:
Instantইউটিসি (UTC) ভিত্তিক সময় প্রতিনিধিত্ব করে এবং এটি সময় এবং তারিখের কাজ সঠিকভাবে করতে সহায়তা করে, যেহেতু এটি টাইমজোন ইস্যু থেকে মুক্ত থাকে।
- টাইমস্ট্যাম্প:
Instantটাইমস্ট্যাম্প হিসেবে ব্যবহৃত হতে পারে, যেখানে কোনো নির্দিষ্ট মুহূর্তের সাথে সম্পর্কিত সেকেন্ড এবং ন্যানোসেকেন্ডের পরিমাণ পাওয়া যায়।
- পারফরম্যান্স:
- যেহেতু
Instantশুধুমাত্র সেকেন্ড এবং ন্যানোসেকেন্ড প্রতিনিধিত্ব করে, এটিLocalDateTimeবাZonedDateTimeএর তুলনায় অনেক দ্রুত এবং কম মেমরি ব্যবহৃত হয়।
- যেহেতু
- টাইমজোন নিরপেক্ষ:
Instantটাইমজোন সম্পর্কিত তথ্য ধারণ করে না, এবং এটি পৃথিবীর যে কোনো জায়গায় একই সময় প্রতিনিধিত্ব করবে।
Instantক্লাসটি UTC-based timestamp বা Unix epoch time প্রতিনিধিত্ব করে এবং এটি সময় এবং তারিখের সঠিক মুহূর্ত ম্যানেজ করতে ব্যবহৃত হয়।- এটি
Instant.now(),plusSeconds(),minusSeconds(), এবংtoEpochMilli()এর মতো মেথডের মাধ্যমে সময় যোগ বা বিয়োগ এবং টাইমস্ট্যাম্প হিসাব করতে ব্যবহৃত হয়। - এটি টাইমজোন থেকে নির্দিষ্ট সময়ের হিসাব এবং গ্লোবাল টাইম সিস্টেমে কাজ করার জন্য খুবই উপকারী।
Read more