java.time
MadProgrammer দ্বারা উত্তর সঠিক, সম্পর্কে, বিশেষ করে টিপ Joda-টাইম । জোদা-টাইমের উত্তরসূরিটি এখন নতুন জাভা.টাইম প্যাকেজ হিসাবে জাভা 8 এ নির্মিত হয়েছে । জাভা 8-তে এখানে উদাহরণ কোড।
তারিখ-সময় (স্থানীয় তারিখের বিপরীতে) নিয়ে কাজ করার সময় সময় অঞ্চলটি সমালোচনামূলক। মাসের দিনটি সময় অঞ্চলের উপর নির্ভর করে। উদাহরণস্বরূপ, ভারত সময় অঞ্চল হল +05:30, যখন (সাড়ে পাঁচ ঘণ্টা এগিয়ে ইউটিসি এর) ফ্রান্স শুধুমাত্র এক ঘন্টার দূরে রয়েছে। সুতরাং ভারতে নতুন দিনের একটি মুহুর্তের একটি তারিখ রয়েছে এবং ফ্রান্সের একই মুহুর্তটির "গতকালের" তারিখ রয়েছে। যে কোনও সময় অঞ্চল বা অফসেটের অভাবের স্ট্রিং আউটপুট তৈরি করা অস্পষ্টতা তৈরি করছে creating আপনি YYYY-MM-DD আউটপুট চেয়েছিলেন যাতে আমি সরবরাহ করেছি, তবে আমি এটি প্রস্তাব করি না। পরিবর্তে ISO_LOCAL_DATEআমি ISO_DATEএই আউটপুট পেতে ব্যবহৃত হত :2014-02-25+05:30
ZoneId zoneId = ZoneId.of( "Asia/Kolkata" );
ZonedDateTime zonedDateTime = ZonedDateTime.now( zoneId );
DateTimeFormatter formatterOutput = DateTimeFormatter.ISO_LOCAL_DATE; // Caution: The "LOCAL" part means we are losing time zone information, creating ambiguity.
String output = formatterOutput.format( zonedDateTime );
কনসোল করতে ডাম্প ...
System.out.println( "zonedDateTime: " + zonedDateTime );
System.out.println( "output: " + output );
যখন চালানো…
zonedDateTime: 2014-02-25T14:22:20.919+05:30[Asia/Kolkata]
output: 2014-02-25
Joda-টাইম
জোদা-টাইম লাইব্রেরি, জাভা.টাইমের পূর্বসূরীর ব্যবহার করে অনুরূপ কোড ।
DateTimeZone zone = new DateTimeZone( "Asia/Kolkata" );
DateTime dateTime = DateTime.now( zone );
DateTimeFormatter formatter = ISODateTimeFormat.date();
String output = formatter.print( dateTime );
আইএসও 8601
যাইহোক, আপনার ইনপুট স্ট্রিংয়ের সেই বিন্যাসটি একটি স্ট্যান্ডার্ড ফর্ম্যাট, আইএসও 8601 দ্বারা সংজ্ঞায়িত বেশ কয়েকটি হস্ত তারিখ-সময়ের স্ট্রিং ফর্ম্যাটগুলির মধ্যে একটি ।
জোডা-টাইম এবং জাভা.টাইম উভয়ই বিভিন্ন তারিখ-সময়ের মানগুলির স্ট্রিং উপস্থাপনা বিশ্লেষণ ও উত্পাদনের সময় ডিফল্টরূপে আইএসও 8601 ফর্ম্যাটগুলি ব্যবহার করে।
Dateকরারyyyy-MM-ddবা পার্স করার চেষ্টা করছেন ?? তারিখটি ফর্ম্যাট করতে, সহজেই এটি ব্যবহার করার জন্য , এটি পার্স করতে ব্যবহার করুনyyyy-MM-ddDateformat1.format(date)format1.parse(someStringValueInTheCorrectFormat)