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 ">
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">
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>
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:
">"> ">"
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]DateTimeFormatter.ofPattern("yyyy-MM-dd") // or DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL) // or DateTimeFormatter.ISO_LOCAL_DATE_TIME // or new DateTimeFormatterBuilder().appendValue(ChronoField.YEAR).toFormatter() [/code] Sie alle geben eine unveränderliche DateTimeFormatter Instanz zurück. class = "Lang-Java PrettyPrint-Override">[code]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 [/code] Aber in diesen Fällen ist Lokalisierung (zumindest das numerische System) nicht korrekt: [list] [*] 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]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); // ۱۴۰۴-۰۴-۰۷ [/code] Als ein weiteres Beispiel lokalisiert JavaScript auch alles ordnungsgemäß alles (einschließlich Ziffern), wenn die Daten mit seiner Tolocalestring () oder tolocaledateString () Methoden: ">"> ">"[code]let myDate = new Date(2025, 5, 28); myDate.toLocaleDateString("fa"); // ۱۴۰۴/۴/۷ [/code] 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/browse/icu-23071?focusedCommentionId=185878881/li>
Ich habe einen Zeitstempel in der Zeichenfolge und verwende DateTimeFormatter, um die Zeichenfolge wie folgt zu analysieren und sie einer Variablen vom Typ Zeitstempel zuzuweisen
import...
Hintergrund:
Ich habe dies in GCC C ++ Standard -Bibliothekserweiterungpool_Allocator.H aufgetreten, das einen Allocator -Typ enthält, der Speicherpool verwendet, um die Effizienz der kleinen...