TL; ড
java.time.temporal.ChronoUnit.DAYS.between(
earlier.toLocalDate(),
later.toLocalDate()
)
... অথবা ...
java.time.temporal.ChronoUnit.HOURS.between(
earlier.truncatedTo( ChronoUnit.HOURS ) ,
later.truncatedTo( ChronoUnit.HOURS )
)
java.time
এফওয়াইআই, জোডা-টাইম প্রকল্পটি এখন রক্ষণাবেক্ষণের মোডে রয়েছে , দলটি জাভা.টাইম ক্লাসগুলিতে মাইগ্রেশনের পরামর্শ দিচ্ছে ।
Joda-টাইম সমতুল্য DateTimeহয় ZonedDateTime।
ZoneId z = ZoneId.of( "Pacific/Auckland" ) ;
ZonedDateTime now = ZonedDateTime.now( z ) ;
স্পষ্টতই আপনি দিনগুলি তারিখ অনুসারে গণনা করতে চান, যার অর্থ আপনি দিনের সময়টিকে উপেক্ষা করতে চান। উদাহরণস্বরূপ, মধ্যরাতের আগে এক মিনিট শুরু করা এবং মধ্যরাতের পরে এক মিনিট শেষ হওয়ার ফলে একদিনের ফলাফল পাওয়া উচিত। এই আচরণের জন্য, LocalDateআপনার থেকে একটি বের করুন ZonedDateTime। LocalDateবর্গ সময় অফ দিন এবং সময় জোন ছাড়া ছাড়া একটি তারিখ কেবল-মান প্রতিনিধিত্ব করে।
LocalDate localDateStart = zdtStart.toLocalDate() ;
LocalDate localDateStop = zdtStop.toLocalDate() ;
ChronoUnitঅতিবাহিত দিন বা অন্যান্য ইউনিট গণনা করতে এনাম ব্যবহার করুন ।
long days = ChronoUnit.DAYS.between( localDateStart , localDateStop ) ;
অগ্রভাগ ছাঁটিয়া দেত্তয়া
আপনি এই গণনাটি করার আরও সাধারণ উপায় সম্পর্কে জিজ্ঞাসা করছেন যেখানে আপনি ষাট মিনিটের স্প্যানস-অফ-সময় হিসাবে পুরো ঘন্টার চেয়ে ঘন্টা অবধি ঘন্টার ঘন্টা ব-দ্বীপ হিসাবে আগ্রহী, truncatedToপদ্ধতিটি ব্যবহার করুন ।
এখানে আপনার একই দিনে 14:45 থেকে 15:12 এর উদাহরণ।
ZoneId z = ZoneId.of( "America/Montreal" );
ZonedDateTime start = ZonedDateTime.of( 2017 , 1 , 17 , 14 , 45 , 0 , 0 , z );
ZonedDateTime stop = ZonedDateTime.of( 2017 , 1 , 17 , 15 , 12 , 0 , 0 , z );
long hours = ChronoUnit.HOURS.between( start.truncatedTo( ChronoUnit.HOURS ) , stop.truncatedTo( ChronoUnit.HOURS ) );
1
এটি কয়েক দিন ধরে কাজ করে না। এই ক্ষেত্রে ToLocalDate () ব্যবহার করুন।
জাভা.টাইম সম্পর্কে
Java.time ফ্রেমওয়ার্ক জাভা 8 এবং পরে পাতাটা করা হয়। এই ক্লাসগুলি , & , এর মতো সমস্যাযুক্ত পুরানো উত্তরাধিকারের তারিখ-সময়ের ক্লাসগুলিকে সহায়তা করে ।java.util.DateCalendarSimpleDateFormat
Joda-টাইম প্রকল্প, এখন রক্ষণাবেক্ষণ মোড , মাইগ্রেশনে উপদেশ java.time ক্লাস।
আরও জানতে, ওরাকল টিউটোরিয়াল দেখুন । এবং অনেক উদাহরণ এবং ব্যাখ্যার জন্য স্ট্যাক ওভারফ্লো অনুসন্ধান করুন। স্পেসিফিকেশনটি জেএসআর 310 ।
আপনি আপনার ডাটাবেসের সাথে জাভা.টাইম অবজেক্টগুলি সরাসরি বিনিময় করতে পারেন । জেডিবিসি ৪.২ বা তারপরের সাথে অনুগত একটি জেডিবিসি ড্রাইভার ব্যবহার করুন । স্ট্রিংগুলির দরকার নেই, ক্লাসের প্রয়োজন নেই ।java.sql.*
জাভা.টাইম ক্লাস কোথায় পাবেন?
ThreeTen-অতিরিক্ত প্রকল্প অতিরিক্ত শ্রেণীর সাথে java.time প্রসারিত করে। এই প্রকল্পটি জাভা.টাইমে সম্ভাব্য ভবিষ্যতের সংযোজনগুলির একটি প্রমাণযোগ্য ক্ষেত্র। আপনি এখানে কিছু দরকারী শ্রেণীর যেমন খুঁজে পেতে পারেন Interval, YearWeek, YearQuarter, এবং আরো ।
ThreeTen-অতিরিক্ত প্রকল্প অতিরিক্ত শ্রেণীর সাথে java.time প্রসারিত করে। এই প্রকল্পটি জাভা.টাইমে সম্ভাব্য ভবিষ্যতের সংযোজনগুলির একটি প্রমাণযোগ্য ক্ষেত্র। আপনি এখানে কিছু দরকারী শ্রেণীর যেমন খুঁজে পেতে পারেন Interval, YearWeek, YearQuarter, এবং আরো ।
Days.daysBetweenডেটাটিকে ভুল বলে মনে করেন সেখানে উদাহরণের একটি কেস সরবরাহ করতে পারেন ?