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.Date
Calendar
SimpleDateFormat
আরও জানতে, ওরাকল টিউটোরিয়ালটি দেখুন । এবং অনেকগুলি উদাহরণ এবং ব্যাখ্যাগুলির জন্য স্ট্যাক ওভারফ্লো অনুসন্ধান করুন। স্পেসিফিকেশনটি জেএসআর 310 ।
Joda-টাইম প্রকল্প, এখন রক্ষণাবেক্ষণ মোড , মাইগ্রেশনে উপদেশ java.time ক্লাস।
আপনি আপনার ডাটাবেসের সাথে জাভা.টাইম অবজেক্টগুলি সরাসরি বিনিময় করতে পারেন । জেডিবিসি ৪.২ বা তারপরের সাথে অনুগত একটি জেডিবিসি ড্রাইভার ব্যবহার করুন । স্ট্রিংগুলির দরকার নেই, ক্লাসের প্রয়োজন নেই । হাইবারনেট 5 এবং জেপিএ 2.2 সমর্থন জাভা.টাইম ।java.sql.*
জাভা.টাইম ক্লাস কোথায় পাবেন?
java.util.Date
স্থানীয় মেশিনের তারিখ কখনই হয় না। এটি সর্বদা ইউটিসি + 00: 00 এর তুলনায় 1970-01-01 থেকে বিচ্ছিন্ন মিলিসেক হিসাবে সংজ্ঞায়িত হয়। সম্ভবত এর পদ্ধতির আচরণtoString()
আপনাকে বিভ্রান্ত করে যা প্রকৃতপক্ষে স্থানীয় সময় অঞ্চলে একটি উপস্থাপনা ব্যবহার করে।