আপনি "বর্তমান মিলি সেকেন্ড" বলতে কী বোঝায় তা সম্পূর্ণরূপে নিশ্চিত নই তবে আমি ধরে নেব এটি "যুগের" পরে, 1 জানুয়ারী 1, 1970 ইউটিসি-র মধ্যরাত্রি থেকে মিলসেকেন্ডের সংখ্যা।
আপনি যদি এই মুহুর্ত থেকে এখন থেকে মিলিসেকেন্ডের সংখ্যাটি খুঁজে পেতে চান , তবে অনুবিয়ান নুব নির্দেশ করেছেনSystem.currentTimeMillis()
হিসাবে ব্যবহার করুন । যদি তা হয় তবে নতুন জাভা.টাইম এপিআই এর কোনও ব্যবহার করার কারণ নেই।
তবে, সম্ভবত আপনার LocalDateTime
কোথাও কোথাও থেকে ইতিমধ্যে একটি বা অনুরূপ অবজেক্ট রয়েছে এবং আপনি এটিকে পর্বের সময় থেকেই এটি মিলিসেকেন্ডে রূপান্তর করতে চান। এটি সরাসরি করা সম্ভব নয়, যেহেতু LocalDateTime
অবজেক্টের পরিবারটি কোন টাইম জোনে রয়েছে সে সম্পর্কে কোনও ধারণা নেই time সুতরাং সময় অঞ্চলের তথ্যটি ইউটিসিতে থাকা যুগের সাথে সম্পর্কিত সময় খুঁজে পেতে সরবরাহ করা প্রয়োজন।
ধরুন আপনার LocalDateTime
মতো একটি রয়েছে :
LocalDateTime ldt = LocalDateTime.of(2014, 5, 29, 18, 41, 16);
আপনাকে সময় অঞ্চল তথ্য প্রয়োগ করতে হবে, একটি ZonedDateTime
। আমি লস অ্যাঞ্জেলেসের একই সময় অঞ্চলে আছি, তাই আমি এই জাতীয় কিছু করব:
ZonedDateTime zdt = ldt.atZone(ZoneId.of("America/Los_Angeles"));
অবশ্যই এটি সময় অঞ্চল সম্পর্কে অনুমান করে। এবং প্রান্তের কেসগুলি ঘটতে পারে, উদাহরণস্বরূপ, যদি স্থানীয় সময় ডেইলাইট সেভিং টাইম (গ্রীষ্মকালীন সময়) রূপান্তরটির কাছাকাছি সময়টির নামকরণ করে। আসুন এগুলি আলাদা করে রাখুন, তবে আপনার সচেতন হওয়া উচিত যে এই কেসগুলি বিদ্যমান।
যাইহোক, আপনি যদি কোনও বৈধ পেতে পারেন তবে আপনি ZonedDateTime
এটিকে যুগের পর থেকে মিলিসেকেন্ডের সংখ্যায় রূপান্তর করতে পারেন, এর মতো:
long millis = zdt.toInstant().toEpochMilli();
System.currentTimeMillis()
?