लोकलडेट को स्ट्रिंग में कैसे प्रारूपित करें?


156

मेरे पास दिनांक नाम से एक स्थानीय संस्करण है, जब मैं इसे प्रिंट करता हूं 1988-05-05 प्रदर्शित करता हूं तो मुझे इसे परिवर्तित करने की आवश्यकता है इसे 05.May 1988 के रूप में मुद्रित किया जाए। ऐसा करने के लिए कैसे?


3
DateTimeFormatter वर्ग पर एक नज़र डालें । यह भी उदाहरण है कि कैसे और से परिवर्तित करने के लिए String
azurefrog

2
आपको कुछ कोड दिखाने चाहिए, जो आपने अब तक आज़माए हैं और जो काम नहीं कर रहे हैं, ताकि लोग आपकी मदद कर सकें।
द्विवार्षिक २ b

मैंने ऐसा करने की कोशिश की, लेकिन इस कष्टप्रद "यह हमारे गुणवत्ता मानकों को पूरा नहीं करता है" बात मैंने आखिरकार छोड़ दी, मुझे इसे पोस्ट करने में सिर्फ 15 मिनट लगे क्योंकि मुझे "मैं" के साथ "i" को सही करना था।
यास्को

जवाबों:


306

SimpleDateFormat कार्य नहीं करेगा यदि वह LocalDate के साथ शुरू हो रहा है जो जावा 8 में नया है। जो मैं देख सकता हूं, उससे आपको DateTimeFormatter, http://docs.oracle.com/javase/8/docs/ji/java/ का उपयोग करना होगा समय / प्रारूप / DateTimeFormatter.html

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

यह 05 मई 1988 को मुद्रित होना चाहिए। दिन के बाद और महीने से पहले की अवधि प्राप्त करने के लिए, आपको "dd'.LLLL yyyy" का उपयोग करना पड़ सकता है।


4
बहुत बहुत धन्यवाद, इससे मदद मिलती है, लेकिन इसने महीने का नाम दिखाने के लिए 'LLLL' के साथ काम नहीं किया, लेकिन 'MMMM' के साथ मुझे यह अजीब लगा, क्योंकि प्रलेखन में भी यह अन्यथा कहता है। लेकिन एक बार फिर मेरी मदद करने के लिए धन्यवाद ।
जास्को २o

2
अब localDate.format (फॉर्मैटर); सभी पर काम नहीं करता है
इंजन 12

जो संस्करण JDK आपके यूज़िंग @ProgrammersBlock
लोवा चित्तमुरी

29

के रूप में छोटा हो सकता है:

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

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

उपरोक्त उत्तर आज के लिए यह दर्शाता है


Patterns को Android O
Mahdi

0

प्रोग्रामरब्लॉक पोस्ट्स की मदद से मैं इसके साथ आया। मेरी ज़रूरतें थोड़ी अलग थीं। मुझे एक स्ट्रिंग लेने और लोकलडेट ऑब्जेक्ट के रूप में इसे वापस करने की आवश्यकता थी। मुझे कोड सौंपा गया था जो पुराने कैलेंडर और SimpleDateFormat का उपयोग कर रहा था। मैं इसे थोड़ा और चालू करना चाहता था। मैंने ये ढूंढ निकाला।

    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

Joda lib के लिए LocalDate को प्रारूपित करने का एक अंतर्निहित तरीका है

import org.joda.time.LocalDate;

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

यदि आपके पास यह पहले से नहीं है - तो इसे build.gradle में जोड़ें:

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

हैप्पी कोडिंग! :)


1
जावदोक के अनुसार नहीं।
एडवर्ड

@ आगे, अगर यह नहीं है, तो कृपया इसे साबित करें और एक समाधान प्रदान करें जो आपको लगता है कि बेहतर है।
inoy

1
आप मुझे साबित करना चाहते हैं कि LocalDate.toString (स्ट्रिंग पैटर्न) मौजूद नहीं है? कृपया उस विधि का संदर्भ प्रदान करें यदि यह मौजूद है - मैं इसे किसी भी javadocs में नहीं पा सका हूँ। एक समाधान के रूप में, यह सवाल पहले से ही है।
एडवर्ड

@ आगे, लगता है कि आपको इसे ढूंढने में मुश्किल समय हो रहा है। मेरे उत्तर को अपडेट किया।
inoy

Joda Time "अंतर्निहित" नहीं है। ओपी 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यहां उसकी मदद कैसे कर सकता था?
टॉम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.