TL; ড
আশেপাশে Date
এবং "বর্তমানের সেরা অনুশীলন" সম্পর্কে পরামর্শ দিনCalendar
সর্বদা উপকার Calendar
করা ভাল?Date
পুরোপুরি এই উত্তরাধিকারের ক্লাসগুলি এড়িয়ে চলুন । ব্যবহার করুন java.time পরিবর্তে ক্লাস।
- ইউটিসিতে এক মুহুর্তের জন্য , ব্যবহার করুন (এর আধুনিক সমতুল্য)
Instant
Date
) ব্যবহার করুন
- নির্দিষ্ট সময় অঞ্চলে এক মুহুর্তের জন্য (আধুনিক সমতুল্য ) ব্যবহার করুন
ZonedDateTime
GregorianCalendar
- কোনও নির্দিষ্ট অফসেট-ইউটিসি-তে এক মুহুর্তের জন্য , ব্যবহার করুন
OffsetDateTime
(উত্তরাধিকার শ্রেণিতে সমতুল্য নয়)
- অজানা সময় অঞ্চল বা অফসেট সহ একটি তারিখ-সময়ের জন্য (এক মুহূর্ত নয়) ব্যবহার করুন (উত্তরাধিকার শ্রেণিতে সমতুল্য নয়)
LocalDateTime
বিস্তারিত
Ortomala দ্বারা উত্তর Lokni সঠিক আধুনিক ব্যবহার সুপারিশ java.time (বরং বিরক্তিজনক পুরাতন উত্তরাধিকার তারিখ-সময় শ্রেণীর চেয়ে শ্রেণীর Date
,Calendar
, ইত্যাদি)। তবে সেই উত্তরটি ভুল শ্রেণিকে সমতুল্য হিসাবে প্রস্তাব করে (সেই উত্তর সম্পর্কে আমার মন্তব্য দেখুন)।
জাভা.টাইম ব্যবহার
জাভা.টাইম ক্লাসগুলি উত্তরাধিকারের তারিখ-সময় ক্লাস, রাত্রি এবং দিনের পার্থক্যের তুলনায় বিশাল উন্নতি। পুরানো ক্লাসগুলি খারাপভাবে ডিজাইন করা, বিভ্রান্তিকর এবং ঝামেলাযুক্ত। আপনার যখনই সম্ভব পুরানো ক্লাসগুলি এড়ানো উচিত। কিন্তু যখন আপনাকে পুরানো / নতুন থেকে রূপান্তর করতে হবে, আপনি পুরানো ক্লাসগুলিতে নতুন পদ্ধতি যুক্ত করে কল করতে পারেন ।
রূপান্তর সম্পর্কিত আরও তথ্যের জন্য, আমার উত্তর এবং নিফটি চিত্রটি অন্য প্রশ্নের কাছে দেখুন, java.util রূপান্তর করুন ate "জাভা.টাইম" টাইপের তারিখটি কী? ।
স্ট্যাক ওভারফ্লো অনুসন্ধান জাভা.টাইম ব্যবহারের ক্ষেত্রে শত শত উদাহরণ এবং বিভিন্ন উত্তর দেয়। তবে এখানে একটি দ্রুত সংক্ষিপ্তসার রয়েছে।
Instant
একটি সঙ্গে বর্তমান মুহুর্ত পান Instant
। Instant
ক্লাসে টাইমলাইনে একটি মুহূর্ত প্রতিনিধিত্ব করে ইউটিসি একটি রেজোলিউশনে ন্যানোসেকেন্ড (একসঙ্গে নয় জন (9) একটি দশমিক ভগ্নাংশের সংখ্যায় পর্যবসিত)।
Instant instant = Instant.now();
ZonedDateTime
কিছু নির্দিষ্ট অঞ্চলের প্রাচীর-ঘড়ির সময় লেন্সের মাধ্যমে একই একই মুহূর্তটি দেখতে একটি সময় অঞ্চল প্রয়োগ করুন ( )ZoneId
ZonedDateTime
।
সময় অঞ্চল
একটি নির্দিষ্ট করুন সঠিক সময় অঞ্চল নাম এর বিন্যাসে continent/region
যেমন America/Montreal
, Africa/Casablanca
অথবা Pacific/Auckland
। কখনও যেমন 3-4 চিঠি সংক্ষেপ ব্যবহার EST
বা IST
হিসাবে তারা না সত্য সময় অঞ্চল, না মান, এবং এমনকি অনন্য নয় (!)।
ZoneId z = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = instant.atZone();
অফসেট
একটি সময় অঞ্চল হ'ল একটি অঞ্চলের এর অফসেট-থেকে-ইউটিসি-র পরিবর্তনের ইতিহাস । তবে কখনও কখনও সম্পূর্ণ জোন ব্যতীত আপনাকে কেবল অফসেট দেওয়া হয়। সেক্ষেত্রে OffsetDateTime
ক্লাসটি ব্যবহার করুন ।
ZoneOffset offset = ZoneOffset.parse( "+05:30" );
OffsetDateTime odt = instant.atOffset( offset );
একমাত্র অফসেট ব্যবহারের চেয়ে টাইম জোন ব্যবহার করা ভাল।
LocalDateTime
Local…
ক্লাসগুলিতে "স্থানীয়" অর্থ কোনও লোকাল , কোনও নির্দিষ্ট লোকেশন নয়। নামটি স্ব-স্বজ্ঞাত হতে পারে।
LocalDateTime
, LocalDate
এবং LocalTime
উদ্দেশ্যমূলকভাবে অফসেট বা সময় অঞ্চল সম্পর্কে কোনও তথ্যের অভাব রয়েছে। সুতরাং তারা কি না প্রকৃত মুহূর্ত প্রতিনিধিত্ব, তারা না টাইমলাইনে পয়েন্ট। সন্দেহ বা বিভ্রান্তিতে থাকলে ZonedDateTime
বরং ব্যবহার করুনLocalDateTime
। আরও অনেক আলোচনার জন্য অনুসন্ধান স্ট্যাক ওভারফ্লো।
স্ট্রিংস
তারিখ-সময় অবজেক্টগুলিকে স্ট্রিংগুলির সাথে সংযুক্ত করবেন না যা তাদের মান উপস্থাপন করে। আপনি একটি তারিখ-সময় অবজেক্ট পেতে একটি স্ট্রিং পার্স করতে পারেন, এবং আপনি একটি তারিখ-সময় অবজেক্ট থেকে একটি স্ট্রিং তৈরি করতে পারেন। তবে স্ট্রিংটি কখনই তারিখ-সময় নয়।
জাভা.টাইম ক্লাসে ডিফল্টরূপে ব্যবহৃত স্ট্যান্ডার্ড আইএসও 8601 ফর্ম্যাটগুলি সম্পর্কে জানুন ।
জাভা.টাইম সম্পর্কে
Java.time ফ্রেমওয়ার্ক জাভা 8 এবং পরে পাতাটা করা হয়। এই ক্লাসগুলি , & , এর মতো সমস্যাযুক্ত পুরানো উত্তরাধিকারের তারিখ-সময়ের ক্লাসগুলিকে সহায়তা করে ।java.util.Date
Calendar
SimpleDateFormat
Joda-টাইম প্রকল্প, এখন রক্ষণাবেক্ষণ মোড , মাইগ্রেশনে উপদেশ java.time ক্লাস।
আরও জানতে, ওরাকল টিউটোরিয়ালটি দেখুন । এবং অনেক উদাহরণ এবং ব্যাখ্যার জন্য স্ট্যাক ওভারফ্লো অনুসন্ধান করুন। স্পেসিফিকেশনটি জেএসআর 310 ।
জেডিবিসি ড্রাইভারের সাথে জেডিবিসি ৪.২ বা তার পরে উপযুক্ত ব্যবহার করে আপনি জাভা.টাইম বিনিময় করতে পারেন সরাসরি আপনার ডাটাবেসের সাথে অবজেক্টগুলি । স্ট্রিং বা জাভা.এসকিউএল। * ক্লাসের প্রয়োজন নেই।
জাভা.টাইম ক্লাস কোথায় পাবেন?
ThreeTen-অতিরিক্ত প্রকল্প অতিরিক্ত শ্রেণীর সাথে java.time প্রসারিত করে। এই প্রকল্পটি জাভা.টাইমে সম্ভাব্য ভবিষ্যতের সংযোজনগুলির একটি প্রমাণযোগ্য ক্ষেত্র। আপনি এখানে কিছু দরকারী শ্রেণীর যেমন খুঁজে পেতে পারেন Interval
, YearWeek
, YearQuarter
, এবং আরো ।