TL; ড
LocalDateTime.parse(
"2016-01-23 12:34".replace( " " , "T" )
)
.atZone( ZoneId.of( "Asia/Karachi" ) )
.plusMinutes( 10 )
java.time
তারিখ-সময় কাজের জন্য দুর্দান্ত জাভা.টাইম ক্লাস ব্যবহার করুন। এই ক্লাসগুলি ঝামেলা পুরাতন তারিখের সময় ক্লাস যেমন java.util.Date
এবং java.util.Calendar
।
আইএসও 8601
জাভা.টাইম ক্লাসগুলি তারিখ-সময়ের মানগুলির পার্সিং / উত্পাদনের জন্য ডিফল্টরূপে মানক আইএসও 8601 ফর্ম্যাটগুলি ব্যবহার করে। আপনার ইনপুট স্ট্রিংটি মেনে চলার জন্য, স্পেসকে মাঝখানে একটি দ্বারা প্রতিস্থাপন করুন T
।
String input = "2016-01-23 12:34" ;
String inputModified = input.replace( " " , "T" );
LocalDateTime
আপনার ইনপুট স্ট্রিংটিকে এমন হিসাবে পার্স করুন LocalDateTime
যেহেতু এতে সময় অঞ্চল বা ইউটিসি-থেকে অফসেট সম্পর্কিত কোনও তথ্যের অভাব রয়েছে।
LocalDateTime ldt = LocalDateTime.parse( inputModified );
দশ মিনিট যোগ করুন।
LocalDateTime ldtLater = ldt.plusMinutes( 10 );
ldt.toString (): 2016-01-23T12: 34
ldtLater.toString (): 2016-01-23T12: 44
IdeOne.com এ লাইভ কোড দেখুন ।
যে LocalDateTime
তাই এটি নেই, কোন সময় জোন হয়েছে না টাইমলাইনে একটি বিন্দু প্রতিনিধিত্ব করে। একটি আসল মুহুর্তে অনুবাদ করতে একটি সময় অঞ্চল প্রয়োগ করুন। একটি নির্দিষ্ট করুন সঠিক সময় অঞ্চল নাম এর বিন্যাসে continent/region
যেমন America/Montreal
, Africa/Casablanca
অথবা Pacific/Auckland
, অথবা Asia/Karachi
। 3-4 চিঠি সংক্ষেপ ব্যবহার না যেমন EST
বা IST
বা PKT
তারা যেমন না সত্য সময় অঞ্চল, না মান, এবং এমনকি অনন্য নয় (!)।
ZonedDateTime
যদি আপনি এই মানটির জন্য লক্ষ্যযুক্ত সময় অঞ্চলটি জানেন তবে একটি ZoneId
পেতে একটি প্রয়োগ করুন ZonedDateTime
।
ZoneId z = ZoneId.of( "Asia/Karachi" );
ZonedDateTime zdt = ldt.atZone( z );
zdt.toString (): 2016-01-23T12: 44 + 05: 00 [এশিয়া / করাচি]
ব্যতিক্রমসমূহ
একটি সময় অঞ্চল যুক্ত করার আগে বা পরে এই দশ মিনিট যুক্ত করতে হবে কিনা তা চিন্তা করুন। ডেলাইট সেভিং টাইম (ডিএসটি) এর মতো অসঙ্গতিগুলির কারণে আপনি খুব আলাদা ফলাফল পেতে পারেন যা প্রাচীর-ঘড়ির সময় পরিবর্তন করে ।
জোন যুক্ত করার আগে আপনার 10 মিনিট যুক্ত করা উচিত কিনা তা আপনার ব্যবসায়ের পরিস্থিতি এবং নিয়মের অর্থের উপর নির্ভর করে।
টিপ: আপনি যখন টাইমলাইনে একটি নির্দিষ্ট মুহুর্তের উদ্দেশ্যে চান, সর্বদা সময় অঞ্চল তথ্য রাখুন । আপনার ইনপুট ডেটা দিয়ে সম্পন্ন হিসাবে তথ্য হারাবেন না। মানটি কি 12:34
পাকিস্তানে দুপুর বা ফ্রান্সের দুপুর বা কোয়েবেকের মধ্যাহ্নের অর্থ? যদি আপনি পাকিস্তানের দুপুর বোঝাতে চান তবে কমপক্ষে অফসেট-থেকে-ইউটিসি ( +05:00
) এবং আরও ভাল, সময় অঞ্চলটির নাম অন্তর্ভুক্ত করে এটি বলুন Asia/Karachi
।
Instant
আপনি যদি ইউটিসির লেন্সের মাধ্যমে দেখা একই মুহূর্তটি চান তবে একটিটি বের করুন Instant
। Instant
ক্লাসে টাইমলাইনে একটি মুহূর্ত প্রতিনিধিত্ব করে ইউটিসি একটি রেজোলিউশনে ন্যানোসেকেন্ড (একসঙ্গে নয় জন (9) একটি দশমিক ভগ্নাংশের সংখ্যায় পর্যবসিত)।
Instant instant = zdt.toInstant();
রূপান্তর
যখনই সম্ভব সমস্যাযুক্ত পুরানো তারিখের সময় ক্লাসগুলি এড়িয়ে চলুন। তবে আপনার যদি অবশ্যই হয় তবে আপনি রূপান্তর করতে পারেন। পুরানো ক্লাসে যুক্ত নতুন পদ্ধতিগুলি কল করুন।
java.util.Date utilDate = java.util.Date.from( instant );
জাভা.টাইম সম্পর্কে
Java.time ফ্রেমওয়ার্ক জাভা 8 এবং পরে পাতাটা করা হয়। এই ক্লাসগুলি , & , এর মতো সমস্যাযুক্ত পুরানো উত্তরাধিকারের তারিখ-সময়ের ক্লাসগুলিকে সহায়তা করে ।java.util.Date
Calendar
SimpleDateFormat
Joda-টাইম প্রকল্প, এখন রক্ষণাবেক্ষণ মোড , স্থানান্তরণ java.time করার পরামর্শ দেয়।
আরও জানতে, ওরাকল টিউটোরিয়ালটি দেখুন । এবং অনেকগুলি উদাহরণ এবং ব্যাখ্যাগুলির জন্য স্ট্যাক ওভারফ্লো অনুসন্ধান করুন। স্পেসিফিকেশনটি জেএসআর 310 ।
জাভা.টাইম ক্লাস কোথায় পাবেন?
ThreeTen-অতিরিক্ত প্রকল্প অতিরিক্ত শ্রেণীর সাথে java.time প্রসারিত করে। এই প্রকল্পটি জাভা.টাইমে ভবিষ্যতের সম্ভাব্য সংযোজনগুলির একটি প্রমাণকারী ক্ষেত্র। আপনি এখানে কিছু দরকারী শ্রেণীর যেমন খুঁজে পেতে পারেন Interval
, YearWeek
, YearQuarter
, এবং আরো ।