আমি কীভাবে একটি স্ট্রিং এ এ রূপান্তর করতে পারি LocalDate
?
আমি উদাহরণগুলি দেখেছি যেমন:
LocalDate dt = new LocalDate("2005-11-12");
তবে আমার স্ট্রিংগুলি এর মতো:
2005-nov-12
আমি কীভাবে একটি স্ট্রিং এ এ রূপান্তর করতে পারি LocalDate
?
আমি উদাহরণগুলি দেখেছি যেমন:
LocalDate dt = new LocalDate("2005-11-12");
তবে আমার স্ট্রিংগুলি এর মতো:
2005-nov-12
উত্তর:
আপনি জোদা সময় ব্যবহার করার সময়, আপনার ব্যবহার করা উচিত DateTimeFormatter
:
final DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MMM-dd");
final LocalDate dt = dtf.parseLocalDate(yourinput);
যদি জাভা 8 বা তার বেশি ব্যবহার করে থাকেন তবে হার্টজির উত্তরটি দেখুন
জাভা ১.৮ থেকে আপনি জাভা.টাইম ক্লাস ব্যবহার করে অতিরিক্ত পাঠাগার ছাড়াই এটি অর্জন করতে পারেন । টিউটোরিয়াল দেখুন ।
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MMM-dd");
formatter = formatter.withLocale( putAppropriateLocaleHere ); // Locale specifies human language for translating, and cultural norms for lowercase/uppercase and abbreviations and such. Example: Locale.US or Locale.CANADA_FRENCH
LocalDate date = LocalDate.parse("2005-nov-12", formatter);
সিনট্যাক্স যদিও প্রায় একই।
আপনাকে ডেটটাইম থেকে লোকালডেটে যেতে হতে পারে।
জোদা সময় ব্যবহার:
DateTimeFormatter FORMATTER = DateTimeFormat.forPattern("yyyy-MMM-dd");
DateTime dateTime = FORMATTER.parseDateTime("2005-nov-12");
LocalDate localDate = dateTime.toLocalDate();
ডেটটাইম ফর্ম্যাটিং দ্বারা সম্পাদিত হয় org.joda.time.format.DateTimeFormatter class
। তিনটি ক্লাস বিন্যাস তৈরি করতে কারখানার পদ্ধতি সরবরাহ করে এবং এটি একটি। অন্যরা হলেন ISODateTimeFormat
এবং DateTimeFormatterBuilder
।
DateTimeFormatter format = DateTimeFormat.forPattern("yyyy-MMM-dd");
LocalDate lDate = new LocalDate().parse("2005-nov-12",format);
final org.joda.time.LocalDate class
একটি অপরিবর্তনীয় ডেটটাইম ক্লাস যা সময় অঞ্চল ছাড়া কোনও তারিখের প্রতিনিধিত্ব করে । LocalDate
হয় থ্রেড-নিরাপদ এবং অপরিবর্তনীয় যে, প্রদত্ত সারণী হিসাবে ভাল। সরবরাহিত সমস্ত স্ট্যান্ডার্ড ক্রোনোলজি ক্লাসগুলি থ্রেড-নিরাপদ এবং অপরিবর্তনীয়।
DateTimeFormatter
অন্তর্নির্মিত ফর্ম্যাটগুলি রয়েছে যা একটি অক্ষর ক্রম পার্স করার জন্য সরাসরি ব্যবহার করা যেতে পারে। এটি সংবেদনশীল ক্ষেত্রে, নভেম্বরে নতুন এবং এনওভের কাজ করবে না:
DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MMM-dd");
try {
LocalDate datetime = LocalDate.parse(oldDate, pattern);
System.out.println(datetime);
} catch (DateTimeParseException e) {
// DateTimeParseException - Text '2019-nov-12' could not be parsed at index 5
// Exception handling message/mechanism/logging as per company standard
}
DateTimeFormatterBuilder
একটি ফরম্যাটার তৈরির কাস্টম উপায় সরবরাহ করে। এটি কেস সংবেদনশীল, নভেম্বর, নভে এবং এনওভিকে একই হিসাবে বিবেচনা করা হবে।
DateTimeFormatter f = new DateTimeFormatterBuilder().parseCaseInsensitive()
.append(DateTimeFormatter.ofPattern("yyyy-MMM-dd")).toFormatter();
try {
LocalDate datetime = LocalDate.parse(oldDate, f);
System.out.println(datetime); // 2019-11-12
} catch (DateTimeParseException e) {
// Exception handling message/mechanism/logging as per company standard
}