java.time
আধুনিক পদ্ধতির জাভা.টাইম ক্লাসগুলি ব্যবহার করে যা জাভা-র প্রথম সংস্করণগুলির সাথে বান্ডিলযুক্ত ঝামেলাযুক্ত উত্তরাধিকারের তারিখ-সময় ক্লাসগুলি সরবরাহ করে।
java.sql.Timestamp
বর্গ ঐ উত্তরাধিকার শ্রেণীর অন্যতম। আর লাগবেনা. পরিবর্তে Instant
জেডিবিসি ৪.২ এবং তারপরে আপনার ডাটাবেসের সাথে অন্য জাভা.টাইম ক্লাসগুলি ব্যবহার করুন।
Instant
ক্লাসে টাইমলাইনে একটি মুহূর্ত প্রতিনিধিত্ব করে ইউটিসি একটি রেজোলিউশনে ন্যানোসেকেন্ড (একসঙ্গে নয় জন (9) একটি দশমিক ভগ্নাংশের সংখ্যায় পর্যবসিত)।
Instant instant = myResultSet.getObject( … , Instant.class ) ;
আপনার যদি কোনও বিদ্যমান সাথে Timestamp
ইন্টারঅ্যাক্ট করতে হয় তবে পুরানো ক্লাসগুলিতে যুক্ত হওয়া নতুন রূপান্তর পদ্ধতির মাধ্যমে অবিলম্বে জাভা.টাইমে রূপান্তর করুন।
Instant instant = myTimestamp.toInstant() ;
অন্য টাইম জোনে সামঞ্জস্য করতে, সময় জোনটিকে ZoneId
অবজেক্ট হিসাবে নির্দিষ্ট করুন । একটি নির্দিষ্ট করুন সঠিক সময় অঞ্চল নাম এর বিন্যাসে continent/region
যেমন America/Montreal
, Africa/Casablanca
অথবা Pacific/Auckland
। কখনও যেমন 3-4 চিঠি সিউডো-জোন ব্যবহার করেন EST
বা IST
হিসাবে তারা না সত্য সময় অঞ্চল, না মান, এবং এমনকি অনন্য নয় (!)।
ZoneId z = ZoneId.of( "America/Montreal" ) ;
Instant
একটি ZonedDateTime
বস্তু উত্পাদন করতে প্রয়োগ করুন ।
ZonedDateTime zdt = instant.atZone( z ) ;
ব্যবহারকারীর কাছে প্রদর্শনের জন্য একটি স্ট্রিং তৈরি করতে, DateTimeFormatter
অনেক আলোচনা এবং উদাহরণ খুঁজে পেতে স্ট্যাক ওভারফ্লো অনুসন্ধান করুন search
আপনার প্রশ্নটি ডেট-টাইম অবজেক্টগুলিতে ব্যবহারকারীর ডেটা-এন্ট্রি থেকে শুরু করে অন্য দিকে যাওয়ার বিষয়ে। আপনার ডেটা-এন্ট্রি দুটি অংশে ভাঙার জন্য সাধারণত সেরা, একটি তারিখ এবং দিনের একটি সময়।
LocalDate ld = LocalDate.parse( dateInput , DateTimeFormatter.ofPattern( "M/d/uuuu" , Locale.US ) ) ;
LocalTime lt = LocalTime.parse( timeInput , DateTimeFormatter.ofPattern( "H:m a" , Locale.US ) ) ;
আপনার প্রশ্ন পরিষ্কার নয়। আপনি কি ইউটিসিতে থাকার জন্য ব্যবহারকারী দ্বারা প্রবেশের তারিখ এবং সময়টিকে ব্যাখ্যা করতে চান? নাকি অন্য টাইম জোনে?
আপনি যদি ইউটিসি বলতে চান, ইউটিসির OffsetDateTime
জন্য ধ্রুবক ব্যবহার করে অফসেট সহ একটি তৈরি করুন ZoneOffset.UTC
।
OffsetDateTime odt = OffsetDateTime.of( ld , lt , ZoneOffset.UTC ) ;
যদি আপনি অন্য সময় অঞ্চল বলতে চান, একটি সময় অঞ্চল অবজেক্টের সাথে একত্রিত হন, ক ZoneId
। তবে কোন সময় অঞ্চল? আপনি একটি ডিফল্ট সময় অঞ্চল সনাক্ত করতে পারেন। বা, যদি সমালোচনা হয় তবে তাদের অবশ্যই তাদের উদ্দেশ্য সম্পর্কে নিশ্চিত হওয়ার জন্য আপনাকে অবশ্যই নিশ্চিত করতে হবে।
ZonedDateTime zdt = ZonedDateTime.of( ld , lt , z ) ;
সংজ্ঞা অনুসারে সর্বদা ইউটিসিতে থাকা একটি সহজ অবজেক্ট পেতে, একটিটি বের করুন Instant
।
Instant instant = odt.toInstant() ;
… বা…
Instant instant = zdt.toInstant() ;
আপনার ডাটাবেসে প্রেরণ করুন।
myPreparedStatement.setObject( … , instant ) ;
জাভা.টাইম সম্পর্কে
Java.time ফ্রেমওয়ার্ক জাভা 8 এবং পরে পাতাটা করা হয়। এই ক্লাসগুলি , & , এর মতো সমস্যাযুক্ত পুরানো উত্তরাধিকারের তারিখ-সময়ের ক্লাসগুলিকে সহায়তা করে ।java.util.Date
Calendar
SimpleDateFormat
Joda-টাইম প্রকল্প, এখন রক্ষণাবেক্ষণ মোড , মাইগ্রেশনে উপদেশ java.time ক্লাস।
আরও জানতে, ওরাকল টিউটোরিয়াল দেখুন । এবং অনেকগুলি উদাহরণ এবং ব্যাখ্যাগুলির জন্য স্ট্যাক ওভারফ্লো অনুসন্ধান করুন। স্পেসিফিকেশনটি জেএসআর 310 ।
জাভা.টাইম ক্লাস কোথায় পাবেন?
ThreeTen-অতিরিক্ত প্রকল্প অতিরিক্ত শ্রেণীর সাথে java.time প্রসারিত করে। এই প্রকল্পটি জাভা.টাইমে ভবিষ্যতের সম্ভাব্য সংযোজনগুলির একটি প্রমাণ করার ক্ষেত্র। আপনি এখানে কিছু দরকারী শ্রেণীর যেমন খুঁজে পেতে পারেন Interval
, YearWeek
, YearQuarter
, এবং আরো ।