Java 8-এ java.time.Clock ক্লাসটি সময় সম্পর্কিত কাজের জন্য ব্যবহৃত হয়, বিশেষত যখন আপনি সিস্টেমের বর্তমান সময় বা Instant পেতে চান। এটি Instant, LocalDateTime, এবং ZonedDateTime এর মতো টাইম স্ট্যাম্প ব্যবহার করে সময়ের নির্দিষ্ট মুহূর্ত (instant) পাওয়া সম্ভব করে।
Clock ক্লাসের বৈশিষ্ট্য:
Clockসিস্টেমের ঘড়ি বা টাইমজোন নির্ধারণ করে এবং বর্তমান সময় (current time) পাওয়া সহজ করে তোলে।- এটি বিশেষভাবে পরীক্ষা এবং unit tests এ ব্যবহৃত হয়, যেখানে একটি নির্দিষ্ট সময় বা টাইমজোন ব্যবহার করতে হতে পারে, যাতে সিস্টেমের ঘড়ির উপর নির্ভর না করতে হয়।
Clockক্লাসInstant,LocalDateTime, এবংZonedDateTimeঅবজেক্টগুলো তৈরি করার জন্য ব্যবহৃত হতে পারে।
Clock এর মাধ্যমে বর্তমান সময় বা Instant পাওয়া:
Clock এর সাথে Instant পেতে:
Clock ব্যবহার করে সিস্টেমের বর্তমান সময় বা Instant পাওয়া যায়, যা 1970-01-01T00:00:00Z থেকে সেকেন্ড বা ন্যানোসেকেন্ড পরিমাপ করা হয়। Clock এর মাধ্যমে আপনি নির্দিষ্ট সময় অঞ্চল (timezone) বা সিস্টেমের সময় পেতে পারেন।
Clock ক্লাসের কিছু গুরুত্বপূর্ণ মেথড:
Clock.systemUTC(): UTC (Coordinated Universal Time) সময়ের জন্য ক্লক তৈরি করে।Clock.systemDefaultZone(): সিস্টেমের ডিফল্ট টাইমজোন অনুযায়ী ক্লক তৈরি করে।Clock.system(ZoneId zone): নির্দিষ্ট টাইমজোন অনুযায়ী ক্লক তৈরি করে।instant(): বর্তমানInstantপ্রদান করে।millis(): মিমি সেকেন্ডে বর্তমান সময় প্রদান করে।
Clock ব্যবহার করে Instant পাওয়া:
Instant হল একটি নির্দিষ্ট মুহূর্ত (timestamp) যা epoch time (1970-01-01T00:00:00Z) থেকে পরিমাপ করা হয়। Clock ক্লাসের instant() মেথড ব্যবহার করে এটি পাওয়া যায়।
Example: Using Clock to Get the Current Instant
import java.time.Clock;
import java.time.Instant;
public class ClockExample {
public static void main(String[] args) {
// Create a Clock instance for UTC
Clock clock = Clock.systemUTC();
// Get the current instant (timestamp)
Instant now = clock.instant();
// Print the current Instant
System.out.println("Current Instant: " + now);
}
}
আউটপুট:
Current Instant: 2024-12-23T12:30:45.123456Z
ব্যাখ্যা:
Clock.systemUTC()ব্যবহার করে আমরা UTC টাইমজোনের ক্লক তৈরি করেছি।clock.instant()মেথডটি সিস্টেমের বর্তমান Instant প্রদান করে, যা epoch second থেকে পরিমাপ করা সময়।
Clock ব্যবহার করে ZonedDateTime পাওয়া:
ZonedDateTime টাইমজোনের সাথে সম্পর্কিত তারিখ এবং সময়ের অবজেক্ট। আপনি Clock এর মাধ্যমে ZonedDateTime পেতে পারেন, যা নির্দিষ্ট টাইমজোনের সময় প্রদান করবে।
Example: Using Clock to Get the Current ZonedDateTime
import java.time.Clock;
import java.time.ZoneId;
import java.time.ZonedDateTime;
public class ClockExample {
public static void main(String[] args) {
// Create a Clock instance for Asia/Kolkata time zone
Clock clock = Clock.system(ZoneId.of("Asia/Kolkata"));
// Get the current ZonedDateTime
ZonedDateTime zonedDateTime = ZonedDateTime.now(clock);
// Print the current ZonedDateTime
System.out.println("Current ZonedDateTime: " + zonedDateTime);
}
}
আউটপুট:
Current ZonedDateTime: 2024-12-23T18:00:45.123456+05:30[Asia/Kolkata]
ব্যাখ্যা:
Clock.system(ZoneId.of("Asia/Kolkata"))টাইমজোন হিসাবেAsia/Kolkataব্যবহার করে ক্লক তৈরি করা হয়েছে।ZonedDateTime.now(clock)ব্যবহার করে আমরা বর্তমান ZonedDateTime পেয়েছি, যাAsia/Kolkataটাইমজোনের সময় এবং তারিখ প্রদর্শন করে।
Clock ব্যবহার করে LocalDateTime পাওয়া:
LocalDateTime শুধুমাত্র তারিখ এবং সময় ধারণ করে এবং এটি টাইমজোন সম্পর্কিত নয়। আপনি Clock এর মাধ্যমে LocalDateTime পেতে পারেন, তবে এটি টাইমজোন ছাড়াই স্থানীয় সময় ধারণ করবে।
Example: Using Clock to Get the Current LocalDateTime
import java.time.Clock;
import java.time.LocalDateTime;
public class ClockExample {
public static void main(String[] args) {
// Create a Clock instance for the system default time zone
Clock clock = Clock.systemDefaultZone();
// Get the current LocalDateTime
LocalDateTime localDateTime = LocalDateTime.now(clock);
// Print the current LocalDateTime
System.out.println("Current LocalDateTime: " + localDateTime);
}
}
আউটপুট:
Current LocalDateTime: 2024-12-23T18:30:45.123456
ব্যাখ্যা:
Clock.systemDefaultZone()সিস্টেমের ডিফল্ট টাইমজোন অনুযায়ী ক্লক তৈরি করেছে।LocalDateTime.now(clock)মেথডটি সিস্টেমের ডিফল্ট টাইমজোনের স্থানীয় সময় এবং তারিখ প্রদান করেছে।
Clock এবং Instant এর মধ্যে পার্থক্য:
| Feature | Clock | Instant |
|---|---|---|
| Usage | Represents the current time in terms of Clock object for a specific time zone or system default zone. | Represents a specific point in time (timestamp) in UTC (1970-01-01T00:00:00Z). |
| Time Zone | Can be associated with a specific time zone (e.g., Clock.system(ZoneId.of("Asia/Kolkata"))). | Always represents time in UTC and does not have time zone info. |
| Use Case | Used when you need a clock instance that reflects time in specific regions. | Used when working with timestamps, often in a universal (UTC) context. |
Clockক্লাসের মাধ্যমে আপনি সিস্টেমের ঘড়ি বা টাইমজোন ভিত্তিক বর্তমান সময় এবং Instant পেতে পারেন।Instantহল UTC টাইমস্ট্যাম্প, যা epoch second থেকে পরিমাপ করা সময়।Clockব্যবহার করে আপনিLocalDateTime,ZonedDateTime, এবংInstantএর মতো টাইম অবজেক্ট তৈরি করতে পারেন।Clock.systemUTC(),Clock.systemDefaultZone(), এবংClock.system(ZoneId zone)ব্যবহার করে আপনি সিস্টেম বা নির্দিষ্ট টাইমজোনের সময় পেতে পারেন।
Read more