TL; ড
Instant.now()
java.time
জাভা এর প্রথম সংস্করণগুলির সাথে বান্ডিলযুক্ত সমস্যাযুক্ত পুরানো তারিখের সময় ক্লাসগুলি জাভা ৮ এবং তার পরে জাভা.টাইম ক্লাসগুলি দ্বারা পরিপ্ল্যান্ট করা হয়েছে । ওরাকল টিউটোরিয়াল দেখুন । কার্যকারিতাটির বেশিরভাগটি থ্রিটেন-ব্যাকপোর্টে জাভা 6 এবং 7 এ ব্যাক-পোর্ট করা হয়েছে এবং আরও থ্রিডেএনএবিপিতে অ্যান্ড্রয়েডের সাথে অভিযোজিত ।
Instant
একটি Instantমধ্যে টাইমলাইনে একটি মুহূর্ত প্রতিনিধিত্ব করে ইউটিসি পর্যন্ত একটি রেজোলিউশনে ন্যানোসেকেন্ড ।
Instant instant = Instant.now();
toStringপদ্ধতি টেক্সট মান একটি ব্যবহার তারিখ-সময় মান প্রতিনিধিত্বমূলক সঙ্গে স্ট্রিং অবজেক্ট উত্পন্ন আইএসও 8601 ফরম্যাটের।
String output = instant.toString();
2016-06-27T19: 15: 25.864Z
Instantবর্গ java.time একটি মৌলিক বিল্ডিং-ব্লক বর্গ। তারিখ-সময় পরিচালনা করার সময় এটি আপনার ক্লাস হওয়া উচিত কারণ সাধারণত ইউটিসিতে তারিখ-সময় মানগুলি ট্র্যাক করা, সঞ্চয় করা এবং আদান-প্রদান করা সবচেয়ে ভাল অনুশীলন।
OffsetDateTime
তবে Instantবিকল্প ফর্ম্যাটে স্ট্রিং উত্পন্ন করার জন্য বিন্যাসকরণের বিকল্পগুলির মতো সীমাবদ্ধতা রয়েছে। আরও নমনীয়তার জন্য, এ থেকে রূপান্তর Instantকরুন OffsetDateTime। ইউটিসি থেকে অফসেট নির্দিষ্ট করুন । জাভা.টাইমে এর অর্থ একটি ZoneOffsetঅবজেক্ট। এখানে আমরা ইউটিসি (+00) এর সাথে লেগে থাকতে চাই যাতে আমরা সুবিধাজনক ধ্রুবকটি ব্যবহার করতে পারি ZoneOffset.UTC।
OffsetDateTime odt = instant.atOffset( ZoneOffset.UTC );
2016-06-27T19: 15: 25.864Z
বা Instantক্লাস বাদ দিন ।
OffsetDateTime.now( ZoneOffset.UTC )
এখন OffsetDateTimeহাতে থাকা কোনও বস্তুর DateTimeFormatterসাহায্যে আপনি বিকল্প বিন্যাসে পাঠ্য সহ স্ট্রিং অবজেক্ট তৈরি করতে ব্যবহার করতে পারেন। ব্যবহারের অনেক উদাহরণের জন্য অনুসন্ধান স্ট্যাক ওভারফ্লো DateTimeFormatter।
ZonedDateTime
আপনি যখন নির্দিষ্ট সময় অঞ্চলের জন্য প্রাচীর-ঘড়ির সময় প্রদর্শন করতে চান , একটি ZoneIdপেতে একটি প্রয়োগ করুন ZonedDateTime।
এই উদাহরণে আমরা মন্ট্রিয়াল সময় অঞ্চল প্রয়োগ করি। গ্রীষ্মে, ডাইটলাইট সেভিং টাইম (ডিএসটি) আজেবাজেসের অধীনে এই অঞ্চলে অফসেট থাকে -04:00। সুতরাং নোট করুন কীভাবে দিনের সময়টি চার ঘন্টার 15পরিবর্তে আউটপুটে চার ঘন্টা হয় 19। Instantএবং ZonedDateTimeউভয়ই একই একই মুহূর্তের প্রতিনিধিত্ব করে, কেবল দুটি পৃথক লেন্সের মধ্য দিয়ে দেখা হয়েছে।
ZoneId z = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = instant.atZone( z );
2016-06-27T15: 15: 25.864-04: 00 [আমেরিকা / মন্ট্রিল]
রূপান্তর
আপনার যদি পুরানো তারিখের সময় ক্লাসগুলি এড়ানো উচিত, তবে আপনাকে অবশ্যই পুরানো ক্লাসগুলিতে যুক্ত নতুন পদ্ধতি ব্যবহার করে রূপান্তর করতে পারেন। এখানে আমরা ব্যবহার করি java.util.Date.from( Instant )এবং java.util.Date::toInstant।
java.util.Date utilDate = java.util.Date.from( instant );
এবং অন্য দিকে যাচ্ছে।
Instant instant= utilDate.toInstant();
একইভাবে, রূপান্তর করতে এবং থেকে রূপান্তর করতে GregorianCalendar(সাবক্লাস অব Calendar) যুক্ত হওয়া নতুন পদ্ধতিগুলির সন্ধান করুন java.time.ZonedDateTime।
জাভা.টাইম সম্পর্কে
Java.time ফ্রেমওয়ার্ক জাভা 8 এবং পরে পাতাটা করা হয়। এই ক্লাসগুলি , & , এর মতো সমস্যাযুক্ত পুরানো উত্তরাধিকারের তারিখ-সময়ের ক্লাসগুলিকে সহায়তা করে ।java.util.DateCalendarSimpleDateFormat
আরও জানতে, ওরাকল টিউটোরিয়ালটি দেখুন । এবং অনেকগুলি উদাহরণ এবং ব্যাখ্যাগুলির জন্য স্ট্যাক ওভারফ্লো অনুসন্ধান করুন। স্পেসিফিকেশনটি জেএসআর 310 ।
Joda-টাইম প্রকল্প, এখন রক্ষণাবেক্ষণ মোড , মাইগ্রেশনে উপদেশ java.time ক্লাস।
আপনি আপনার ডাটাবেসের সাথে জাভা.টাইম অবজেক্টগুলি সরাসরি বিনিময় করতে পারেন । জেডিবিসি ৪.২ বা তারপরের সাথে অনুগত একটি জেডিবিসি ড্রাইভার ব্যবহার করুন । স্ট্রিংগুলির দরকার নেই, ক্লাসের প্রয়োজন নেই । হাইবারনেট 5 এবং জেপিএ 2.2 সমর্থন জাভা.টাইম ।java.sql.*
জাভা.টাইম ক্লাস কোথায় পাবেন?
java.util.Dateস্থানীয় মেশিনের তারিখ কখনই হয় না। এটি সর্বদা ইউটিসি + 00: 00 এর তুলনায় 1970-01-01 থেকে বিচ্ছিন্ন মিলিসেক হিসাবে সংজ্ঞায়িত হয়। সম্ভবত এর পদ্ধতির আচরণtoString()আপনাকে বিভ্রান্ত করে যা প্রকৃতপক্ষে স্থানীয় সময় অঞ্চলে একটি উপস্থাপনা ব্যবহার করে।