লোকালডেট স্ট্রিংয়ে ফর্ম্যাট করবেন কীভাবে?


156

আমার কাছে ডেট নামক একটি স্থানীয় তারিখের পরিবর্তনশীল রয়েছে, যখন আমি এটি মুদ্রিত করি 1988-05-05 আমি এটি মুদ্রিত হতে হবে 05. মুদ্রিত 1988. এটি কীভাবে করবেন?


3
কটাক্ষপাত DateTimeFormatter বর্গ। এটিতে কীভাবে এস তে রূপান্তর করা যায় তার উদাহরণ রয়েছে String
আজিউরেফ্রোগ

2
আপনার কিছু কোড প্রদর্শন করা উচিত, আপনি এখন পর্যন্ত কী চেষ্টা করেছেন এবং কী কাজ করছে না যাতে লোকেরা আপনাকে সহায়তা করতে পারে।
বিভিডাল

আমি এটি করার চেষ্টা করেছি কিন্তু এই বিরক্তিকর কারণে "এটি আমাদের মানের মানের সাথে মেলে না" জিনিসটি শেষ পর্যন্ত ছেড়ে দিয়েছি, এটি পোস্ট করতে আমার 15 মিনিট সময় লেগেছে কারণ আমাকে "আমি" দিয়ে "আমি" সংশোধন করতে হয়েছিল।
জেসকো

উত্তর:


306

সিম্পলডিটফর্ম্যাটটি জাভাতে নতুন যে লোকালডেট দিয়ে শুরু করছে তা কাজ করবে না 8 আমি যা দেখতে পাচ্ছি তা থেকে আপনাকে ডেটটাইমফর্ম্যাটর, http://docs.oracle.com/javase/8/docs/api/java/ ব্যবহার করতে হবে সময় / ফর্ম্যাট / তারিখটাইমফর্ম্যাটরhtml

LocalDate localDate = LocalDate.now();//For reference
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd LLLL yyyy");
String formattedString = localDate.format(formatter);

এটি ১৯৮৮ সালের ৫ মে মুদ্রণ করা উচিত the দিনের পরে এবং মাসের আগে সময়কালে পেতে আপনার "ডিডি'এলএলএল ইয়াই" ব্যবহার করতে হতে পারে


4
আপনাকে অনেক ধন্যবাদ, এটি সাহায্য করে, তবে এটি 'এলএলএলএল' দিয়ে মাসের নাম দেখানোর জন্য কাজ করে নি তবে 'এমএমএমএম' দিয়ে আমি এটিকে আজব বলে মনে করেছি যেহেতু নথিপত্রে এটি অন্যথায় বলেছে। তবে আবারও আমাকে সাহায্য করার জন্য আপনাকে ধন্যবাদ ।
জেসকো

2
এখন লোকালডেট.ফর্ম্যাট (ফরম্যাটার); মোটেও কাজ করে না
ইঞ্জিনসেন্স

আপনি @ প্রোগ্রামারব্লক ব্যবহার করে কোন সংস্করণটি জেডিকে করুন
লোভা চিত্তুমুরি

29

সংক্ষিপ্ত হতে পারে:

LocalDate.now().format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));

3
System.out.println(LocalDate.now().format(DateTimeFormatter.ofPattern("dd.MMMM yyyy")));

উপরের উত্তর এটি আজকের জন্য দেখায়


অফ প্যাটার্নগুলির অ্যান্ড্রয়েড ও
মাহদি

0

প্রোগ্রামারব্লক পোস্টগুলির সহায়তায় আমি এটি নিয়ে এসেছি। আমার চাহিদা কিছুটা আলাদা ছিল। আমার একটি স্ট্রিং নেওয়া এবং এটি স্থানীয় তারিখের অবজেক্ট হিসাবে ফিরিয়ে নেওয়া দরকার। আমাকে এমন পুরানো ক্যালেন্ডার এবং সিম্পলডেটফর্ম্যাট ব্যবহার করা কোড দেওয়া হয়েছিল। আমি এটিকে আরও কিছুটা বর্তমান করতে চেয়েছিলাম। এটিই আমি নিয়ে এসেছি।

    import java.time.LocalDate;
    import java.time.format.DateTimeFormatter;


    void ExampleFormatDate() {

    LocalDate formattedDate = null;  //Declare LocalDate variable to receive the formatted date.
    DateTimeFormatter dateTimeFormatter;  //Declare date formatter
    String rawDate = "2000-01-01";  //Test string that holds a date to format and parse.

    dateTimeFormatter = DateTimeFormatter.ISO_LOCAL_DATE;

    //formattedDate.parse(String string) wraps the String.format(String string, DateTimeFormatter format) method.
    //First, the rawDate string is formatted according to DateTimeFormatter.  Second, that formatted string is parsed into
    //the LocalDate formattedDate object.
    formattedDate = formattedDate.parse(String.format(rawDate, dateTimeFormatter));

}

আশা করি এটি কাউকে সহায়তা করবে, যদি কেউ এই কাজটি করার আরও ভাল উপায় দেখেন তবে দয়া করে আপনার ইনপুট যুক্ত করুন।


আমি আরও ভাল উপায় দেখতে পাচ্ছি: ঠিক LocalDate.parse(rawDate)! String.formatএখানে মোট ভুল আকারে ব্যবহার করা হচ্ছে, আসলে প্রথম স্ট্রিংটি ফিরে আসছে; এটি DateTimeFormatterমোটেই ব্যবহৃত হচ্ছে না; parseএর একটি staticপদ্ধতি LocalDate; formattedDateহয় না একটি ফরম্যাট তারিখ, না এমনকি একটি String(প্রশ্নে অনুরোধ হিসাবে)
user85421

0

জোডা লিবের জন্য লোকালডেট ফর্ম্যাট করার একটি অন্তর্নির্মিত উপায় রয়েছে

import org.joda.time.LocalDate;

LocalDate localDate = LocalDate.now();
String dateFormat = "MM/dd/yyyy";
localDate.toString(dateFormat);

আপনার যদি ইতিমধ্যে এটি না থাকে - বিল্ড.gradle এ এটি যুক্ত করুন:

implementation 'joda-time:joda-time:2.9.5'

শুভ কোডিং! :)


1
জাভাডোক অনুসারে নয়।
এডওয়ার্ড

@ অ্যাডওয়ার্ড, যদি তা না হয় তবে দয়া করে এটি প্রমাণ করুন এবং এমন একটি সমাধান সরবরাহ করুন যা আপনি ভাল বলে মনে করেন।
Inoy

1
আপনি আমাকে প্রমাণ করতে চান যে লোকালডেট.টোস্ট্রিং (স্ট্রিং প্যাটার্ন) বিদ্যমান নেই? দয়া করে দয়া করে সেই পদ্ধতির কোনও রেফারেন্স সরবরাহ করুন - আমি কোনও জাভাদোকগুলিতে এটি সন্ধান করতে সক্ষম হইনি। একটি সমাধান হিসাবে, এই প্রশ্নের ইতিমধ্যে এটি আছে।
এডওয়ার্ড

অ্যাডওয়ার্ড, দেখে মনে হচ্ছে এটি খুঁজে পেতে আপনার খুব কষ্ট হচ্ছে। আমার উত্তর আপডেট।
Inoy

জোডা টাইম "বিল্ট-ইন" নয়। ওপি java.time.LocalDate ব্যবহার করছে বলে মনে হচ্ছে, joda.time নয়
এডওয়ার্ড

-11

এটি করার একটি দুর্দান্ত উপায় হ'ল এটি ব্যবহার করা SimpleDateFormatআমি আপনাকে কীভাবে দেখাব:

SimpleDateFormat sdf = new SimpleDateFormat("d MMMM YYYY");
Date d = new Date();
sdf.format(d);

আমি দেখতে পাচ্ছি যে আপনার একটি পরিবর্তনশীলটিতে তারিখ রয়েছে:

sdf.format(variable_name);

চিয়ার্স।


3
ওপি একটি LocalDateউদাহরণের বিষয়বস্তুকে একটি নির্দিষ্ট বিন্যাসে মুদ্রণ করতে চায় । কিভাবে SimpleDateFormatএখানে তাকে সাহায্য করতে পারে?
টম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.