Was ist der Unterschied zwischen Withlocale () und Localized by () in Java datetimeFormatter?Java

Java-Forum
Anonymous
 Was ist der Unterschied zwischen Withlocale () und Localized by () in Java datetimeFormatter?

Post by Anonymous »

Java 8 führte eine moderne Datum und Uhrzeit -API mit neuen Typen wie LocalDate in java.time vor.* Paket. Es lieferte auch eine neue DateTimeFormatter -Klasse für Formatierung (Generierung von Zeichenfolgen aus diesen Zeiten). PrettyPrint-Override ">

Code: Select all

DateTimeFormatter.ofPattern("yyyy-MM-dd")
// or
DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL)
// or
DateTimeFormatter.ISO_LOCAL_DATE_TIME
// or
new DateTimeFormatterBuilder().appendValue(ChronoField.YEAR).toFormatter()
Sie alle geben eine unveränderliche DateTimeFormatter Instanz zurück. class = "Lang-Java PrettyPrint-Override">

Code: Select all

DateTimeFormatter
.ofPattern("yyyy-MM-dd")
.withChronology(JapaneseChronology.INSTANCE)        // New instance with this chronology
.withDecimalStyle(DecimalStyle.of(Locale.of("fa"))) // New instance with this decimal style
Aber in diesen Fällen ist Lokalisierung (zumindest das numerische System) nicht korrekt:
  • Bei der Angabe kein Gebietsschale für das Formater (d. H. Implizit implizit das System/Java -Lokale)
  • , wenn Sie das Default -Orte verwenden. Eine Formatterinstanz und Verwendung von
  • Wenn Sie das Gebietsschema in OfPattern ("...", MyLocale) Methode der DateTimeFormatter
  • verwenden, verwenden Sie das Gebietsummächel in TOFORMTUMTER (MyLocale) methods -methode mit datetimeForm>

    Code: Select all

    var myLocale = Locale.forLanguageTag("fa");
    var formatter = new SimpleDateFormat("yyyy-MM-dd", myLocale);
    var myDate = formatter.parse("2025-06-28");
    formatter.format(myDate); // ۲۰۲۵-۰۶-۲۸
    < /code>
    ICU4J formatiert auch die Zahlen sowohl für Legacy als auch für moderne Java-Typen: < /p>
    var myLocale = Locale.forLanguageTag("fa");
    var formatter = com.ibm.icu.text.SimpleDateFormat("yyyy-MM-dd", myLocale);
    var myDate = LocalDate.of(2025, 6, 28);
    formatter.format(myDate); // ۱۴۰۴-۰۴-۰۷
    
    Als ein weiteres Beispiel lokalisiert JavaScript auch alles ordnungsgemäß alles (einschließlich Ziffern), wenn die Daten mit seiner Tolocalestring () oder tolocaledateString () Methoden:
    ">"> ">"

    Code: Select all

    let myDate = new Date(2025, 5, 28);
    myDate.toLocaleDateString("fa"); // ۱۴۰۴/۴/۷
    
    Frage
    Was ist der Unterschied zwischen WithLocale () und localizedBy () , und wenn lokalisiert by () ein zuverlässigeres Ergebnis erzeugt, was ist der Punkt mit LOCALE () ? /> Wie lokalisiert man Zahlen mit DateTimeFormatter? />https://en.wikipedia.org/wiki/eastern_arabic_numerals
    https://unicode-org.atlassian.net/brows ... 5878881/li>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post