আমি জাভা 8 এর নতুন ডেটটাইম এপিআইয়ের সাথে কাজ করি।
কীভাবে লোকাল ডেটকে তাত্ক্ষণিকভাবে রূপান্তর করবেন? আমি একটি ব্যতিক্রম পেতে
LocalDate date = LocalDate.of(2012, 2, 2);
Instant instant = Instant.from(date);
এবং আমি বুঝতে পারি না কেন।
আমি জাভা 8 এর নতুন ডেটটাইম এপিআইয়ের সাথে কাজ করি।
কীভাবে লোকাল ডেটকে তাত্ক্ষণিকভাবে রূপান্তর করবেন? আমি একটি ব্যতিক্রম পেতে
LocalDate date = LocalDate.of(2012, 2, 2);
Instant instant = Instant.from(date);
এবং আমি বুঝতে পারি না কেন।
উত্তর:
Instantবর্গ সময়-লাইন উপর একটি ক্ষণিক বিন্দু প্রতিনিধিত্ব করে। একটিতে এবং এর থেকে রূপান্তরকরণের LocalDateজন্য একটি সময়-অঞ্চল প্রয়োজন। অন্য কয়েকটি তারিখ এবং সময় গ্রন্থাগার থেকে ভিন্ন, জেএসআর -310 আপনার জন্য স্বয়ংক্রিয়ভাবে সময়-অঞ্চল নির্বাচন করবে না, তাই আপনাকে অবশ্যই এটি সরবরাহ করতে হবে।
LocalDate date = LocalDate.now();
Instant instant = date.atStartOfDay(ZoneId.systemDefault()).toInstant();
এই উদাহরণটি ZoneId.systemDefault()রূপান্তর সম্পাদন করতে - JVM - এর ডিফল্ট সময় অঞ্চল ব্যবহার করে । সম্পর্কিত প্রশ্নের দীর্ঘ উত্তরের জন্য এখানে দেখুন ।
আপডেট: গৃহীত উত্তরটি কেবল গ্রহণ করে LocalDateTime::toInstant(ZoneOffset)যা ব্যবহার করে ZoneOffset। এই উত্তরটি ব্যবহারসমূহ LocalDate::atStartOfDay(ZoneId)যা কোন গ্রহণ ZoneId। যেমন, এই উত্তরটি সাধারণত আরও কার্যকর (এবং সম্ভবত এটি গ্রহণযোগ্য হওয়া উচিত)।
পুনশ্চ. আমি এপিআই এর প্রধান লেখক ছিল
এটিকে তাত্ক্ষণিক রূপান্তর করতে আপনার লোকালডেটটাইম উদাহরণ থাকতে হবে, যেমন:
LocalDate.now().atStartOfDay().toInstant(ZoneOffset.UTC)
LocalDateসময় অন্তর্ভুক্ত করে না।