TL; ড
জাভা 9 এবং তার পরে: বর্তমান মুহুর্তটি ক্যাপচার করার সময় ন্যানোসেকেন্ডের রেজোলিউশন পর্যন্ত । দশমিক ভগ্নাংশের এটি 9 ডিজিট।
Instant.now()
2017-12-23T12: 34: 56.123456789Z
মাইক্রোসেকেন্ডে সীমাবদ্ধ করতে , কেটে ফেলুন ।
Instant // Represent a moment in UTC.
.now() // Capture the current moment. Returns a `Instant` object.
.truncatedTo( // Lop off the finer part of this moment.
ChronoUnit.MICROS // Granularity to which we are truncating.
) // Returns another `Instant` object rather than changing the original, per the immutable objects pattern.
2017-12-23T12: 34: 56.123456Z
অনুশীলনে, আপনি কেবলমাত্র মাইক্রোসেকেন্ডগুলি দেখতে পাবেন .now
যেহেতু সমসাময়িক প্রচলিত কম্পিউটার হার্ডওয়্যার ক্লকগুলি ন্যানোসেকেন্ডগুলিতে সঠিক নয় ।
বিস্তারিত
অন্যান্য উত্তরগুলি জাভা 8 হিসাবে কিছুটা পুরানো।
java.time
জাভা 8 এবং পরে জাভা.টাইম ফ্রেমওয়ার্ক সহ আসে । এই নতুন ক্লাসগুলি জাভা.ইটি.এল.ডেট /.ক্যালেন্ডার এবং জাভা.টেক্সট.সিম্পলডেট ফরমেটের মতো জাভার প্রাথমিক সংস্করণগুলির সাথে প্রেরণ করা ত্রুটিযুক্ত ঝামেলাযুক্ত তারিখের ক্লাসগুলিকে সহায়তা করে। ফ্রেমওয়ার্কটি জেএসআর 310 দ্বারা সংজ্ঞায়িত করা হয়েছে, জোডা-টাইম দ্বারা অনুপ্রাণিত , থ্রিটেন-এক্সট্রা প্রকল্প দ্বারা প্রসারিত।
জাভা.টাইমের ক্লাসগুলি ন্যানোসেকেন্ডগুলিতে সংশোধন করে , পুরানো তারিখের সময় ক্লাস এবং জোদা-টাইম উভয়ই ব্যবহৃত মিলিসেকেন্ডের চেয়ে অনেক বেশি সূক্ষ্ম । প্রশ্নটিতে জিজ্ঞাসা করা মাইক্রোসেকেন্ডগুলির চেয়ে সূক্ষ্ম ।
Clock
বাস্তবায়ন
জাভা.টাইম ক্লাসগুলি ন্যানোসেকেন্ডগুলিতে মান প্রতিনিধিত্বকারী ডেটা সমর্থন করে, ক্লাসগুলি এখনও ন্যানোসেকেন্ডগুলিতে মান উত্পন্ন করে না । now()
পদ্ধতি, পুরাতন তারিখ-সময় শ্রেণীর হিসাবে একই বয়সী ঘড়ি বাস্তবায়ন ব্যবহার System.currentTimeMillis()
। Clock
জাভা.টাইমে আমাদের কাছে নতুন ইন্টারফেস রয়েছে তবে সেই ইন্টারফেসটির বাস্তবায়ন একই পুরানো মিলিসেকেন্ড ঘড়ি।
সুতরাং আপনি ZonedDateTime.now( ZoneId.of( "America/Montreal" ) )
ভগ্নাংশের দ্বিতীয়টির নয়টি অঙ্ক দেখতে ফলাফলের পাঠ্য উপস্থাপনাকে ফর্ম্যাট করতে পারেন তবে কেবল প্রথম তিনটি সংখ্যায় এই জাতীয় সংখ্যা থাকবে:
2017-12-23T12:34:56.789000000Z
জাভা 9 এ নতুন ক্লক
জাভা 9 এর ওপেনজেডিকে এবং ওরাকল বাস্তবায়নে Clock
জাভা.টাইম ক্লাসগুলির সম্পূর্ণ ন্যানোসেকেন্ডের সক্ষমতা পর্যন্ত সূক্ষ্ম গ্রানুলারিটির সাথে একটি নতুন ডিফল্ট বাস্তবায়ন রয়েছে।
ওপেনজেডিকে সমস্যাটি দেখুন , জাভা.টাইম.ক্লক.সিসটমুটসি () প্রয়োগের যথার্থতা বাড়ান । সেই সমস্যাটি সফলভাবে প্রয়োগ করা হয়েছে।
2017-12-23T12:34:56.123456789Z
ম্যাকওএস সিয়েরার সাথে একটি ম্যাকবুক প্রোতে (রেটিনা, 15 ইঞ্চি, শেষ 2013) আমি মাইক্রোসেকেন্ডগুলিতে (দশমিক ভগ্নাংশের ছয় অঙ্ক পর্যন্ত) বর্তমান মুহুর্তটি পাই।
2017-12-23T12:34:56.123456Z
হার্ডওয়্যার ক্লক
মনে রাখবেন যে কোনও নতুন সূক্ষ্ম Clock
বাস্তবায়নের পরেও আপনার ফলাফলগুলি কম্পিউটারের দ্বারা পৃথক হতে পারে। বর্তমান মুহূর্তটি জানার জন্য জাভা অন্তর্নিহিত কম্পিউটার হার্ডওয়্যারটির ঘড়ির উপর নির্ভর করে।
- রেজল্যুশন হার্ডওয়্যার ঘড়ি ব্যাপকভাবে পরিবর্তিত হয়। উদাহরণস্বরূপ, যদি কোনও নির্দিষ্ট কম্পিউটারের হার্ডওয়্যার ক্লকটি কেবল মাইক্রোসেকেন্ডস গ্রানুলারিটি সমর্থন করে তবে যে কোনও উত্সর্গীকৃত তারিখ-সময়ের মানগুলির মধ্যে শেষের তিনটি সংখ্যাটি শূন্যের সাথে ভগ্নাংশ দ্বিতীয় হতে কেবল ছয় অঙ্ক থাকবে।
- সঠিকতা হার্ডওয়্যার ঘড়ি ব্যাপকভাবে পরিবর্তিত হয়। যেহেতু একটি ঘড়িটি কয়েক সেকেন্ডের দশমিক ভগ্নাংশের কয়েকটি অঙ্ক সহ একটি মান উত্পন্ন করে, সেই অঙ্কগুলি সঠিক হতে পারে না, কেবলমাত্র পারমাণবিক ঘড়ি থেকে পড়ার মতো সময় থেকে অদলবদল হয় । অন্য কথায়, আপনি দশমিক চিহ্নের ডান দিকে কয়েকটি সংখ্যার অঙ্ক দেখতে পেয়েছেন এর অর্থ এই নয় যে আপনি এই মুহুর্তের ডিগ্রি থেকে সত্য হয়ে ওঠার মধ্যবর্তী সময়কে বিশ্বাস করতে পারেন।