मुझे एपीआई से इस तरह की तारीख मिलती है:

2020-09-10T20:00:00.000Z

जब मैं इस तिथि को परिवर्तित करता हूं, तो यह SEPTEMBER 10, 2020 8:00 p. m. दिखाता है

मुझे स्पैनिश में महीना दिखाना है, जैसे Septiembre या Sep

1
Sebastian 9 सितंबर 2020, 22:14

2 जवाब

सबसे बढ़िया उत्तर

मेरा सुझाव है कि आप इसे आधुनिक के साथ करें। java.time दिनांक-समय API और संबंधित स्वरूपण API (पैकेज, java.time.format) पुराने और त्रुटि-प्रवण java.util दिनांक-समय API और SimpleDateFormat के बजाय। आधुनिक दिनांक-समय API के बारे में ट्रेल: दिनांक समय< से अधिक जानें /ए>. यदि आपका Android API स्तर अभी भी Java8 के अनुरूप नहीं है, तो 3TenABP का उपयोग कैसे करें, इसकी जांच करें। Android प्रोजेक्ट और जावा 8+ एपीआई डिसुगरिंग के माध्यम से उपलब्ध हैं .

इसे आधुनिक दिनांक-समय API का उपयोग करके निम्नानुसार करें:

import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class Main {
    public static void main(String[] args) {
        // The given date-time string
        String strDateTime = "2020-09-10T20:00:00.000Z";

        // Parse the given date-time string into OffsetDateTime
        OffsetDateTime odt = OffsetDateTime.parse(strDateTime);

        // Define the formatter for output in a custom pattern and in Spanish Locale
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM dd, uuuu hh:mm a", new Locale("es", "ES"));

        // Print instant using the defined formatter
        String formatted = formatter.format(odt);
        System.out.println(formatted);
    }
}

आउटपुट:

septiembre 10, 2020 08:00 p. m.

यदि आप अभी भी लीगेसी दिनांक-समय और स्वरूपण API का उपयोग करना चाहते हैं, तो आप इसे निम्नानुसार कर सकते हैं:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class Main {
    public static void main(String[] args) throws ParseException {
        // The given date-time string
        String strDateTime = "2020-09-10T20:00:00.000Z";

        // Define the formatter to parse the input string
        SimpleDateFormat inputFormatter = new SimpleDateFormat("yyy-MM-dd'T'HH:mm:ss.SSS'Z'");

        // Parse the given date-time string into java.util.Date
        Date date = inputFormatter.parse(strDateTime);
        
        // Define the formatter for output in a custom pattern and in Spanish Locale
        SimpleDateFormat outputFormatter = new SimpleDateFormat("MMMM dd, yyyy hh:mm a", new Locale("es", "ES"));

        // Print instant using the defined formatter
        String formatted = outputFormatter.format(date);
        System.out.println(formatted);
    }
}

आउटपुट:

septiembre 10, 2020 08:00 p. m.
1
Arvind Kumar Avinash 10 सितंबर 2020, 00:18

आप कुछ इस तरह से कोशिश कर सकते हैं (यह प्रारूप में तारीख लौटाता है: 10 de septiembre de 2020 20:00):

val format: DateFormat = DateFormat.getDateTimeInstance(
    DateFormat.LONG, // date format
    DateFormat.SHORT, // time format
    Locale("es", "ES") // Spanish Locale
)

val dateTime = "2020-09-10T20:00:00.000Z"
val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale("es", "ES"))
val date: Date = simpleDateFormat.parse(dateTime)!! // without validation

println(format.format(date)) // it prints `10 de septiembre de 2020 20:00`
1
iknow 9 सितंबर 2020, 22:49