Freigeben über


Formatter Klasse

Definition

Ein Interpreter für Formatzeichenfolgen im Printf-Stil.

[Android.Runtime.Register("java/util/Formatter", DoNotGenerateAcw=true)]
public sealed class Formatter : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ICloseable, Java.IO.IFlushable
[<Android.Runtime.Register("java/util/Formatter", DoNotGenerateAcw=true)>]
type Formatter = class
    inherit Object
    interface ICloseable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface IFlushable
Vererbung
Formatter
Attribute
Implementiert

Hinweise

Ein Interpreter für Formatzeichenfolgen im Printf-Stil. Diese Klasse bietet Unterstützung für Layoutbegründung und -ausrichtung, gängige Formate für numerische, Zeichenfolgen- und Datums-/Uhrzeitdaten sowie gebietsschemaspezifische Ausgabe. Gängige Java-Typen wie byte, java.math.BigDecimal BigDecimalund Calendar werden unterstützt. Eine eingeschränkte Formatierungsanpassung für beliebige Benutzertypen wird über die Formattable Schnittstelle bereitgestellt.

Formatierer sind für den Multithreadzugriff nicht unbedingt sicher. Threadsicherheit ist optional und liegt in der Verantwortung der Benutzer von Methoden in dieser Klasse.

Formatiertes Drucken für die Java-Sprache ist stark von C printfinspiriert. Obwohl die Formatzeichenfolgen C ähneln, wurden einige Anpassungen vorgenommen, um die Java-Sprache zu berücksichtigen und einige ihrer Features auszunutzen. Außerdem ist die Java-Formatierung strenger als die von C; Wenn beispielsweise eine Konvertierung mit einem Flag nicht kompatibel ist, wird eine Ausnahme ausgelöst. In C werden nicht verwendbare Flags unbeaufsichtigt ignoriert. Die Formatzeichenfolgen sollen daher für C-Programmierer erkennbar sein, aber nicht unbedingt vollständig kompatibel mit denen in C.

Beispiele für die erwartete Verwendung:

<Blockquote>

StringBuilder sb = new StringBuilder();
              // Send all output to the Appendable object sb
              Formatter formatter = new Formatter(sb, Locale.US);

              // Explicit argument indices may be used to re-order output.
              formatter.format("%4$2s %3$2s %2$2s %1$2s", "a", "b", "c", "d")
              // -&gt; " d  c  b  a"

              // Optional locale as the first argument can be used to get
              // locale-specific formatting of numbers.  The precision and width can be
              // given to round and align the value.
              formatter.format(Locale.FRANCE, "e = %+10.4f", Math.E);
              // -&gt; "e =    +2,7183"

              // The '(' numeric flag may be used to format negative numbers with
              // parentheses rather than a minus sign.  Group separators are
              // automatically inserted.
              formatter.format("Amount gained or lost since last statement: $ %(,.2f",
                               balanceDelta);
              // -&gt; "Amount gained or lost since last statement: $ (6,217.58)"

</Blockquote>

Komfortmethoden für allgemeine Formatierungsanforderungen sind vorhanden, wie die folgenden Aufrufe veranschaulichen:

<Blockquote>

// Writes a formatted string to System.out.
              System.out.format("Local time: %tT", Calendar.getInstance());
              // -&gt; "Local time: 13:34:18"

              // Writes formatted output to System.err.
              System.err.printf("Unable to open file '%1$s': %2$s",
                                fileName, exception.getMessage());
              // -&gt; "Unable to open file 'food': No such file or directory"

</Blockquote>

Wie bei sprintf(3)C können Zeichenfolgen mit der statischen Methode String#format(String,Object...) String.formatformatiert werden:

<Blockquote>

// Format a string containing a date.
              import java.util.Calendar;
              import java.util.GregorianCalendar;
              import static java.util.Calendar.*;

              Calendar c = new GregorianCalendar(1995, MAY, 23);
              String s = String.format("Duke's Birthday: %1$tb %1$te, %1$tY", c);
              // -&gt; s == "Duke's Birthday: May 23, 1995"

</Blockquote>

<h3>"org">Organisation</h3>

Diese Spezifikation ist in zwei Abschnitte unterteilt. Im ersten Abschnitt Zusammenfassung werden die grundlegenden Formatierungskonzepte behandelt. Dieser Abschnitt richtet sich an Benutzer, die schnell loslegen möchten und mit dem formatierten Drucken in anderen Programmiersprachen vertraut sind. Im zweiten Abschnitt Details werden die spezifischen Implementierungsdetails behandelt. Es ist für Benutzer gedacht, die eine genauere Spezifikation des Formatierungsverhaltens wünschen.

<h3>"summary">Summary</h3>

Dieser Abschnitt soll einen kurzen Überblick über Formatierungskonzepte bieten. Genaue Verhaltensdetails finden Sie im Abschnitt Details.

<h4>"syntax">Formatzeichenfolgensyntax</h4>

Jede Methode, die eine formatierte Ausgabe erzeugt, erfordert eine Formatzeichenfolge und eine Argumentliste. Die Formatzeichenfolge ist eine String , die festen Text und einen oder mehrere eingebettete Formatbezeichner enthalten kann. Betrachten Sie das folgende Beispiel:

<Blockquote>

Calendar c = ...;
              String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c);

</Blockquote>

Diese Formatzeichenfolge ist das erste Argument für die format -Methode. Sie enthält drei Formatbezeichner "%1$tm", "%1$te" und "%1$tY", die angeben, wie die Argumente verarbeitet werden sollen und wo sie in den Text eingefügt werden sollen. Die restlichen Teile der Formatzeichenfolge sind Fester Text, einschließlich "Dukes Birthday: " und anderer Leerzeichen oder Interpunktion.

Die Argumentliste besteht aus allen Argumenten, die nach der Formatzeichenfolge an die -Methode übergeben werden. Im obigen Beispiel ist die Argumentliste von Größe 1 und besteht aus dem java.util.Calendar Calendar -Objekt c.

<ul>

<li> Die Formatbezeichner für allgemeine, zeichen- und numerische Typen weisen die folgende Syntax auf:

<Blockquote>

%[argument_index$][flags][width][.precision]conversion

</Blockquote>

Die optionale argument_index ist eine ganzzahlige Dezimalzahl, die die Position des Arguments in der Argumentliste angibt. Auf das erste Argument wird durch "1$", das zweite durch "2$" usw. verwiesen.

Die optionalen Flags sind eine Reihe von Zeichen, die das Ausgabeformat ändern. Der Satz gültiger Flags hängt von der Konvertierung ab.

Die optionale Breite ist eine positive Dezimalzahl, die die Mindestanzahl von Zeichen angibt, die in die Ausgabe geschrieben werden sollen.

Die optionale Genauigkeit ist eine nicht negative Dezimalzahl, die normalerweise verwendet wird, um die Anzahl von Zeichen einzuschränken. Das spezifische Verhalten hängt von der Konvertierung ab.

Die erforderliche Konvertierung ist ein Zeichen, das angibt, wie das Argument formatiert werden soll. Der Satz gültiger Konvertierungen für ein bestimmtes Argument hängt vom Datentyp des Arguments ab.

<li> Die Formatbezeichner für Typen, die verwendet werden, um Datums- und Uhrzeitangaben darzustellen, weisen die folgende Syntax auf:

<Blockquote>

%[argument_index$][flags][width]conversion

</Blockquote>

Die optionalen argument_index, Flags und Breite sind wie oben definiert.

Die erforderliche Konvertierung ist eine Zweizeichensequenz. Das erste Zeichen ist 't' oder 'T'. Das zweite Zeichen gibt das zu verwendende Format an. Diese Zeichen sind ähnlich, aber nicht vollständig identisch mit denen, die von GNU date und POSIX strftime(3c)definiert werden.

<li> Die Formatbezeichner, die nicht Argumenten entsprechen, weisen die folgende Syntax auf:

<Blockquote>

%[flags][width]conversion

</Blockquote>

Die optionalen Flags und die Breite sind wie oben definiert.

Die erforderliche Konvertierung ist ein Zeichen, das den Inhalt angibt, der in die Ausgabe eingefügt werden soll.

</ul>

<h4> Konvertierungen </h4>

Konvertierungen sind in die folgenden Kategorien unterteilt:

<Ol>

<li><b>General</b> – kann auf jeden Argumenttyp angewendet werden

<li>b Character/b> – kann auf grundlegende Typen angewendet werden, die Unicode-Zeichen darstellen: char, Character, byte, Byte, und Shortshort.<>< Diese Konvertierung kann auch auf die Typen int angewendet werden, und Integer wenn Character#isValidCodePoint li><b>Numeric</b zurückgegeben true<wird>

<Ol>

<li>b Integral/b> - kann auf Java-Integraltypen angewendet werden: byte, Byte, , Shortshort, int und Integer, long, Longund java.math.BigInteger BigInteger (aber nicht char oder Character)<><

<li><b>Gleitkomma</b> – kann auf Java-Gleitkommatypen angewendet werden: float, Float, double, und Doublejava.math.BigDecimal BigDecimal</ol>

<li><b>Datum/Uhrzeit</b> – kann auf Java-Typen angewendet werden, die in der Lage sind, ein Datum oder eine Uhrzeit zu codieren: long, , LongCalendarund TemporalAccessor TemporalAccessorDate<li><b>Percent</b> – erzeugt ein Literal '%' ()'&#92;u0025'

<li><b>Line Separator</b> – erzeugt das plattformspezifische Zeilentrennzeichen

</Ol>

Für die Kategorie Allgemein, Character, Numberic, Integral und Date/Time-Konvertierung ist das Ergebnis , sofern nicht anders angegeben, wenn das Argument arg lautet null, das Ergebnis "null".

In der folgenden Tabelle sind die unterstützten Konvertierungen zusammengefasst. Konvertierungen, die durch ein Großbuchstaben (d. h. 'B', , 'H', 'C''S', 'X', 'E', , 'G', , 'A'und 'T') gekennzeichnet sind, sind identisch mit denen für die entsprechenden Kleinbuchstaben, mit der Ausnahme, dass das Ergebnis gemäß den Regeln des vorherrschenden java.util.Locale Localein Großbuchstaben konvertiert wird. Wenn kein explizites Gebietsschema angegeben ist, entweder bei der Konstruktion des instance oder als Parameter für den Methodenaufruf, wird verwendetjava.util.Locale.Category#FORMAT default locale.

<table class="striped"><Untertitel style="display:none">genConv</Untertitel<> thead><tr><th scope="col" style="vertical-align:bottom"> Conversion <th scope="col" style="vertical-align:bottom"> Argument Category <th scope="col" style="vertical-align:bottom"> Description </thead<>tbody><tr><th scope="row" style=" vertical-align:top">'b', 'B'<td style="vertical-align:top"> general <td> Wenn das Argument arg lautetnull, lautet das Ergebnis "false". Wenn arg ein boolean oder Booleanist, ist das Ergebnis die von String#valueOf(boolean) String.valueOf(arg)zurückgegebene Zeichenfolge. Andernfalls ist das Ergebnis "true".

<tr><th scope="row" style="vertical-align:top"'h'>,<'H' td style="vertical-align:top"> general <td> Das Ergebnis wird durch Aufrufen Integer.toHexString(arg.hashCode())von abgerufen.

<tr><th scope="row" style="vertical-align:top"'s'>,<'S' td style="vertical-align:top"> general <td> Wenn arg implementiertFormattable, wird aufgerufenFormattable#formatTo arg.formatTo. Andernfalls wird das Ergebnis durch Aufrufen arg.toString()von abgerufen.

<tr><th scope="row" style="vertical-align:top">'c', 'C'<td style="vertical-align:top"> character <td> Das Ergebnis ist ein Unicode-Zeichen

<tr><th scope="row" style="vertical-align:top"><'d'td style="vertical-align:top"> integral <td> Das Ergebnis ist als ganze Dezimalzahl formatiert

<tr><th scope="row" style="vertical-align:top"><'o'td style="vertical-align:top"> integral <td> Das Ergebnis ist als oktale ganze Zahl formatiert

<tr><th scope="row" style="vertical-align:top">'x', 'X'<td style="vertical-align:top"> integral <td> Das Ergebnis ist als hexadezimal ganze Zahl formatiert

<tr><th scope="row" style="vertical-align:top">'e', 'E'<td style="vertical-align:top"> gleitkomma <td> Das Ergebnis ist als Dezimalzahl in computerisierter wissenschaftlicher Notation formatiert

<tr><th scope="row" style="vertical-align:top"><'f'td style="vertical-align:top"> gleitkomma <td> Das Ergebnis ist als Dezimalzahl formatiert

<tr><th scope="row" style="vertical-align:top">'g', 'G'<td style="vertical-align:top"> gleitkomma <td> Das Ergebnis wird mit computerisierter wissenschaftlicher Notation oder dezimalem Format formatiert, abhängig von der Genauigkeit und dem Wert nach der Rundung.

<tr><th scope="row" style="vertical-align:top">'a', 'A'<td style="vertical-align:top"> gleitkomma <td> Das Ergebnis ist als hexadezimale Gleitkommazahl mit einem Significand und einem Exponenten formatiert. Diese Konvertierung wird <>für den BigDecimal Typ nicht< unterstützt,> obwohl sich letzterer in der Gleitkommaargumentkategorie befindet.

<tr><th scope="row" style="vertical-align:top">'t', 'T'<td style="vertical-align:top"> date/time <td> Präfix für Datums- und Uhrzeitkonvertierungszeichen. Siehe Datums-/Uhrzeitkonvertierungen.

<tr><th scope="row" style="vertical-align:top"'%'><td style="vertical-align:top"> percent <td> Das Ergebnis ist ein Literal '%' ()'&#92;u0025'

<tr><th scope="row" style="vertical-align:top"><'n'td style="vertical-align:top"> line separator <td> Das Ergebnis ist das plattformspezifische Zeilentrennzeichen

</tbody></table>

Alle Zeichen, die nicht explizit als Konvertierungen definiert sind, sind unzulässig und für zukünftige Erweiterungen reserviert.

<h4>"dt">Date/Time Conversions</h4>

Die folgenden Datums- und Uhrzeitkonvertierungssuffixzeichen werden für die 't' Konvertierungen und 'T' definiert. Die Typen sind ähnlich wie, aber nicht vollständig identisch mit denen, die von GNU date und POSIX strftime(3c)definiert werden. Zusätzliche Konvertierungstypen werden bereitgestellt, um auf Java-spezifische Funktionen zuzugreifen (z. B. 'L' für Millisekunden innerhalb der Sekunde).

Die folgenden Konvertierungszeichen werden für Formatierungszeiten verwendet:

<table class="striped">Untertitel style="display:none">time</Untertitel<> tbody<>tr><th scope="row" style="vertical-align:top">'H'<td> Stunde des Tages für die 24-Stunden-Uhr, formatiert als zwei Ziffern mit einer führenden Null nach Bedarf, d. h. . 00 - 23<

<tr><th scope="row" style="vertical-align:top"><'I'td> Hour for the 12-Hour Clock, formatiert als zwei Ziffern mit einer führenden Null nach Bedarf, d. h. . 01 - 12

<tr><th scope="row" style="vertical-align:top"><'k'td> Stunde des Tages für die 24-Stunden-Uhr, d. h. . 0 - 23

<tr><th scope="row" style="vertical-align:top"><'l'td> Hour for the 12-Hour Clock, d. h. . 1 - 12

<tr><th scope="row" style="vertical-align:top"><'M'td> Minute innerhalb der Stunde formatiert als zwei Ziffern mit einer führenden Null nach Bedarf, d. h. . 00 - 59

<tr><th scope="row" style="vertical-align:top"'S'<>td> Sekunden innerhalb der Minute, formatiert als zwei Ziffern mit einer führenden Null nach Bedarf, d. h. 00 - 60 ("60" ist ein besonderer Wert, der zur Unterstützung von Sprungsekunden erforderlich ist).

<tr><th scope="row" style="vertical-align:top"><'L'td> Millisecond innerhalb der zweiten Als drei Ziffern formatiert mit nach Bedarf führenden Nullen, d. h. . 000 - 999

<tr><th scope="row" style="vertical-align:top"><'N'td> Nanosecond innerhalb der zweiten, formatiert als neun Ziffern mit nach Bedarf führenden Nullen, d. h. . 000000000 - 999999999

<tr><th scope="row" style="vertical-align:top"><'p'td> Locale-specific java.text.DateFormatSymbols#getAmPmStrings morgen- oder nachmittagsmarkierung in Kleinbuchstaben, z.B."am oder "pm". Die Verwendung des Konvertierungspräfixes 'T' erzwingt diese Ausgabe in Großbuchstaben.

<tr><th scope="row" style="vertical-align:top"'z'><td> RFC 822 style numerische Zeitzonenoffset von GMT, z. B. . -0800 Dieser Wert wird bei Bedarf für die Sommerzeit angepasst. Für longist , Longund Date die verwendete Zeitzone die TimeZone#getDefault()-Standardzeitzone für diesen instance des virtuellen Java-Computers.

<tr><th scope="row" style="vertical-align:top"<>'Z'td> Eine Zeichenfolge, die die Abkürzung für die Zeitzone darstellt. Dieser Wert wird bei Bedarf für die Sommerzeit angepasst. Für longist , Longund Date die verwendete Zeitzone die TimeZone#getDefault()-Standardzeitzone für diesen instance des virtuellen Java-Computers. Das Gebietsschema des Formatters ersetzt das Gebietsschema des Arguments (falls vorhanden).

<tr><th scope="row" style="vertical-align:top"<'s'>td> Sekunden seit Beginn der Epoche ab dem 1. Januar 1970 00:00:00 UTC, d. h. Long.MIN_VALUE/1000 zu .Long.MAX_VALUE/1000

<tr><th scope="row" style="vertical-align:top"'Q'><td> Millisekunden seit Dem Beginn der Epoche ab dem 1. Januar 1970 00:00:00 UTC, d. h. Long.MIN_VALUE bis .Long.MAX_VALUE

</tbody></table>

Die folgenden Konvertierungszeichen werden zum Formatieren von Datumsangaben verwendet:

<table class="striped"><Untertitel style="display:none">date</Untertitel>< tbody>

<tr><th scope="row" style="vertical-align:top"'B'<>td> Locale-specific java.text.DateFormatSymbols#getMonths full month name, z. B. "January", . "February"

<tr><th scope="row" style="vertical-align:top"'b'<>td> Locale-specific java.text.DateFormatSymbols#getShortMonths abgekürzter Monatsname, z. B. "Jan", . "Feb"

<tr><th scope="row" style="vertical-align:top"><'h'td> Same as .'b'

<tr><th scope="row" style="vertical-align:top"'A'<>td> Locale-specific full name of the java.text.DateFormatSymbols#getWeekdays day of the week, z. B. "Sunday",<"Monday" tr><th scope="row" style="vertical-align:top"'a'><td> Locale-specific short name of the java.text.DateFormatSymbols#getShortWeekdays day of the week, z. B. "Sun", "Mon"<tr><th scope="row" style="vertical-align:top"'C'<>td> Vierstelliges Jahr geteilt durch 100, formatiert als zwei Ziffern mit nach Bedarf führende Null, d. h. 00 - 99tr th scope="row" style="vertical-align:top"><'Y'td> Year, formatiert als mindestens vier Ziffern mit führenden Nullen nach Bedarf, z. B. 0092 gleich CE für den gregorianischen 92 Kalender.><<

<tr><th scope="row" style="vertical-align:top"><'y'td> Letzte zwei Ziffern des Jahres, formatiert mit führenden Nullen nach Bedarf, d. h. . 00 - 99

<tr><th scope="row" style="vertical-align:top"><'j'td> Tag des Jahres, formatiert als drei Ziffern mit nach Bedarf führenden Nullen, z. B. 001 - 366 für den gregorianischen Kalender.

<tr><th scope="row" style="vertical-align:top"><'m'td> Month, formatiert als zwei Ziffern mit nach Bedarf führenden Nullen, d. h. . 01 - 13

<tr><th scope="row" style="vertical-align:top"'d'<>td> Tag des Monats, formatiert als zwei Ziffern mit führenden Nullen nach Bedarf, d. h. 01 - 31<tr><th scope="row" style="vertical-align:top"'e'<>td> Tag des Monats, formatiert als zwei Ziffern, d. h. . 1 - 31

</tbody></table>

Die folgenden Konvertierungszeichen werden zum Formatieren allgemeiner Datums-/Uhrzeitkompositionen verwendet.

<table class="striped"><Untertitel style="display:none">composites</Untertitel>< tbody>

<tr><th scope="row" style="vertical-align:top"'R'<>td> Time formatiert für die 24-Stunden-Uhr als "%tH:%tM"<tr><th scope="row" style="vertical-align:top"'T'<>td> Time formatiert für die 24-Stunden-Uhr als ."%tH:%tM:%tS"

<tr><th scope="row" style="vertical-align:top"><'r'td> Time formatiert für die 12-Stunden-Uhr als ."%tI:%tM:%tS %Tp" Die Position des Morgens- oder Nachmittagsmarkierung ('%Tp') kann gebietsschemaabhängig sein.

<tr><th scope="row" style="vertical-align:top"><'D'td> Datum formatiert als ."%tm/%td/%ty"

<tr><th scope="row" style="vertical-align:top"'F'><td> ISO 8601 complete date formatiert als ."%tY-%tm-%td"

<tr><th scope="row" style="vertical-align:top"'c'<>td> Datum und Uhrzeit formatiert als "%ta %tb %td %tT %tZ %tY", z. B. . "Sun Jul 20 16:17:00 EDT 1969"

</tbody></table>

Alle Zeichen, die nicht explizit als Datum/Uhrzeit-Konvertierungssuffixe definiert sind, sind unzulässig und sind für zukünftige Erweiterungen reserviert.

<h4> Flags </h4>

In der folgenden Tabelle sind die unterstützten Flags zusammengefasst. y bedeutet, dass das Flag für die angegebenen Argumenttypen unterstützt wird.

<table class="striped"><Untertitel style="display:none">genConv</Untertitel<> thead<>tr><th scope="col" style="vertical-align:bottom"> Flag <th scope="col" style="vertical-align:bottom"> General <th scope="col" style="vertical-align:bottom"> Character <th scope="col" style="vertical-align:bottom"> Integral <th scope="col" style="vertical-align:bottom"> Gleitkomma <th scope="col" style="vertical-align:bottom"> Date/Time <th scope="col" style="vertical-align:bottom"> Description </thead><tbody<>tr><th scope="row"> '-' <td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> y <td style="text-align:center"; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> y <td> Das Ergebnis wird linksgeschützt.

<tr><th scope="row"> '#' <td style="text-align:center; vertical-align:top"> y<sup>1</sup><td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> y<sup>3</sup<>td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> - <td> Das Ergebnis sollte eine konvertierungsabhängige alternative Form verwenden

<tr><th scope="row"> '+' <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> y<sup>4</sup><td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> - <td> Das Ergebnis enthält immer ein Zeichen

<tr><th scope="row"> '  ' <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> y<sup>4</sup<>td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> - <td> Das Ergebnis enthält einen führenden Bereich für positive Werte.

<tr><th scope="row"> '0' <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> - <td> Das Ergebnis ist zero-padded

<tr><th scope="row"> ',' <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> y<sup>2</sup><td style="text-align:center; vertical-align:top"> y<sup>5</sup<>td style="text-align:center; vertical-align:top"> - <td> Das Ergebnis enthält gebietsschemaspezifische java.text.DecimalFormatSymbols#getGroupingSeparator Gruppierungstrennzeichen<tr><th scope="row"> '(' <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> y<sup>4</sup<>td style="text-align:center; vertical-align:top"> y<sup>5</sup><td style="text-align:center"> - <td> Das Ergebnis schließt negative Zahlen in Klammern ein.

</tbody></table>

<sup>1/sup> Hängt von der Definition von abFormattable<.

<sup>2</sup> Nur für 'd' Konvertierungen.

<sup>3</sup> Nur für 'o', 'x'und 'X' Konvertierungen.

<sup>4</sup> Für 'd', 'o', 'x'und 'X' Konvertierungen, die auf java.math.BigInteger BigInteger oder 'd' angewendet bytewerden, Byte, short, Shortund Integerint , longund , und Longangewendet werden.

<sup>5</sup> Nur für 'e'Konvertierungen, 'E', 'f', 'g', und 'G' .

Alle Zeichen, die nicht explizit als Flags definiert sind, sind unzulässig und für zukünftige Erweiterungen reserviert.

<h4> Width </h4>

Die Breite ist die mindeste Anzahl von Zeichen, die in die Ausgabe geschrieben werden sollen. Für die Zeilentrennzeichenkonvertierung ist die Breite nicht anwendbar. wenn sie bereitgestellt wird, wird eine Ausnahme ausgelöst.

<h4> Precision </h4>

Bei allgemeinen Argumenttypen ist die Genauigkeit die maximale Anzahl von Zeichen, die in die Ausgabe geschrieben werden sollen.

Für die Gleitkommakonvertierungen 'A''a', , 'e', 'E'und 'f' ist die Genauigkeit die Anzahl der Ziffern nach dem Radixpunkt. Wenn die Konvertierung oder 'G'ist'g', ist die Genauigkeit die Gesamtzahl der Ziffern in der resultierenden Größe nach der Rundung.

Für Zeichen-, Integral- und Datums-/Uhrzeitargumenttypen sowie die Konvertierungen von Prozent- und Zeilentrennzeichen ist die Genauigkeit nicht anwendbar. wenn eine Genauigkeit angegeben wird, wird eine Ausnahme ausgelöst.

<h4-Argumentindex></h4>

Der Argumentindex ist eine ganzzahlige Dezimalzahl, die die Position des Arguments in der Argumentliste angibt. Auf das erste Argument wird durch "1$", das zweite durch "2$" usw. verwiesen.

Eine weitere Möglichkeit zum Verweisen auf Argumente nach Position besteht darin, das '<' Flag ('&#92;u003c') zu verwenden, wodurch das Argument für den vorherigen Formatbezeichner erneut verwendet wird. Die folgenden beiden Anweisungen würden beispielsweise identische Zeichenfolgen erzeugen:

<Blockquote>

Calendar c = ...;
              String s1 = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c);

              String s2 = String.format("Duke's Birthday: %1$tm %&lt;te,%&lt;tY", c);

</Blockquote>

<hr><h3>"detail">Details</h3>

In diesem Abschnitt werden Verhaltensdetails für die Formatierung bereitgestellt, einschließlich Bedingungen und Ausnahmen, unterstützte Datentypen, Lokalisierung und Interaktionen zwischen Flags, Konvertierungen und Datentypen. Eine Übersicht über Formatierungskonzepte finden Sie in der Zusammenfassung.

Alle Zeichen, die nicht explizit als Konvertierungen, Datum/Uhrzeit-Konvertierungssuffixe oder Flags definiert sind, sind unzulässig und für zukünftige Erweiterungen reserviert. Die Verwendung eines solchen Zeichens in einer Formatzeichenfolge führt dazu, dass oder UnknownFormatConversionExceptionUnknownFormatFlagsException ausgelöst wird.

Wenn der Formatbezeichner eine Breite oder Genauigkeit mit einem ungültigen Wert enthält oder die anderweitig nicht unterstützt wird, wird bzw IllegalFormatWidthExceptionIllegalFormatPrecisionException . ausgelöst.

Wenn ein Formatbezeichner ein Konvertierungszeichen enthält, das nicht auf das entsprechende Argument anwendbar ist, wird ein IllegalFormatConversionException ausgelöst.

Alle angegebenen Ausnahmen können von einer der format Methoden von Formatter sowie von beliebigen format Hilfsmethoden wie String#format(String,Object...) String.format und java.io.PrintStream#printf(String,Object...) PrintStream.printfausgelöst werden.

Wenn das Argument für die Kategorie Allgemein, Character, Numberic, Integral und Date/Time-Konvertierung angegeben istnull, lautet das Ergebnis "null", sofern nicht anders angegeben.

Konvertierungen, die durch ein Großbuchstaben (d. h. 'B', 'H', 'C''S''X', 'E', 'G', 'A', und 'T') gekennzeichnet sind, sind identisch mit denen für die entsprechenden Kleinbuchstabenkonvertierungszeichen, mit der Ausnahme, dass das Ergebnis gemäß den Regeln der vorherrschenden java.util.Locale Localein Großbuchstaben konvertiert wird. Wenn kein explizites Gebietsschema angegeben ist, entweder bei der Konstruktion des instance oder als Parameter für den Methodenaufruf, wird verwendetjava.util.Locale.Category#FORMAT default locale.

<h4>"dgen">Allgemein</h4>

Die folgenden allgemeinen Konvertierungen können auf jeden Argumenttyp angewendet werden:

<table class="striped"><Untertitel style="display:none">dgConv</Untertitel>< tbody>

<tr><th scope="row" style="vertical-align:top"<'b'>td style="vertical-align:top"><'&#92;u0062'td> Erzeugt entweder "true" oder "false" wie von Boolean#toString(boolean)zurückgegeben.

Wenn das Argument ist null, ist das Ergebnis "false". Wenn das Argument ein boolean oder Booleanist, ist das Ergebnis die von String#valueOf(boolean) String.valueOf()zurückgegebene Zeichenfolge. Andernfalls ist das Ergebnis "true".

Wenn das '#' Flag angegeben wird, wird ein FormatFlagsConversionMismatchException ausgelöst.

<tr><th scope="row" style="vertical-align:top"'B'><td style="vertical-align:top"'&#92;u0042'<>td> Die Großbuchstabenvariante von .'b'

<tr><th scope="row" style="vertical-align:top">'h'<td style="vertical-align:top"'&#92;u0068'><td> Erzeugt eine Zeichenfolge, die den Hashcodewert des Objekts darstellt.

Das Ergebnis wird durch Aufrufen Integer.toHexString(arg.hashCode())von abgerufen.

Wenn das '#' Flag angegeben wird, wird ein FormatFlagsConversionMismatchException ausgelöst.

<tr><th scope="row" style="vertical-align:top"'H'><td style="vertical-align:top"'&#92;u0048'<>td> Die Großbuchstabenvariante von .'h'

<tr><th scope="row" style="vertical-align:top">'s'<td style="vertical-align:top"'&#92;u0073'><td> Erzeugt eine Zeichenfolge.

Wenn das Argument implementiert Formattable, wird seine Formattable#formatTo formatTo -Methode aufgerufen. Andernfalls wird das Ergebnis durch Aufrufen der -Methode des toString() Arguments abgerufen.

Wenn das '#' Flag angegeben wird und das Argument kein Formattable ist, wird ein FormatFlagsConversionMismatchException ausgelöst.

<tr><th scope="row" style="vertical-align:top"'S'><td style="vertical-align:top"'&#92;u0053'<>td> Die Großbuchstabenvariante von .'s'

</tbody></table>

Die folgenden "dFlags">-Flags gelten für allgemeine Konvertierungen:

<table class="striped"><Untertitel style="display:none">dFlags</Untertitel>< tbody>

<tr><th scope="row" style="vertical-align:top">'-'<td style="vertical-align:top"'&#92;u002d'><td> Left rechtfertigt die Ausgabe. Leerzeichen ('&#92;u0020') werden nach Bedarf am Ende des konvertierten Werts hinzugefügt, um die Mindestbreite des Felds auszufüllen. Wenn die Breite nicht angegeben wird, wird eine MissingFormatWidthException ausgelöst. Wenn dieses Flag nicht angegeben wird, wird die Ausgabe richtig begründet.

<tr><th scope="row" style="vertical-align:top">'#'<td style="vertical-align:top"'&#92;u0023'><td> Erfordert, dass die Ausgabe ein alternatives Formular verwendet. Die Definition des Formulars wird durch die Konvertierung angegeben.

</tbody></table>

Die "genWidth">-Breite ist die minimale Anzahl von Zeichen, die in die Ausgabe geschrieben werden sollen. Wenn die Länge des konvertierten Werts kleiner als die Breite ist, wird die Ausgabe um '&nbsp;&nbsp;' ('&#92;u0020') aufgefüllt, bis die Gesamtanzahl der Zeichen der Breite entspricht. Der Abstand befindet sich standardmäßig auf der linken Seite. Wenn das '-' Flag angegeben wird, befindet sich der Abstand auf der rechten Seite. Wenn die Breite nicht angegeben ist, gibt es kein Minimum.

Die Genauigkeit ist die maximale Anzahl von Zeichen, die in die Ausgabe geschrieben werden sollen. Die Genauigkeit wird vor der Breite angewendet, sodass die Ausgabe auf precision Zeichen abgeschnitten wird, auch wenn die Breite größer als die Genauigkeit ist. Wenn die Genauigkeit nicht angegeben wird, gibt es keine explizite Beschränkung für die Anzahl von Zeichen.

<h4>"dchar">Character</h4>

Diese Konvertierung kann auf char und Characterangewendet werden. Sie kann auch auf die Typen , , und angewendet werden, int undInteger, wenn Character#isValidCodePoint zurückgegeben truewird.ShortshortBytebyte Wenn es zurückgibt false , wird eine IllegalFormatCodePointException ausgelöst.

<table class="striped"><Untertitel style="display:none">charConv</Untertitel>< tbody>

<tr><th scope="row" style="vertical-align:top">'c'<td style="vertical-align:top"'&#92;u0063'><td> Formatiert das Argument wie unter Unicode-Zeichendarstellung beschrieben als Unicode-Zeichen. Dies kann mehr als eine 16-Bit-Version char sein, wenn das Argument ein ergänzendes Zeichen darstellt.

Wenn das '#' Flag angegeben wird, wird ein FormatFlagsConversionMismatchException ausgelöst.

<tr><th scope="row" style="vertical-align:top"'C'><td style="vertical-align:top"'&#92;u0043'<>td> Die Großbuchstabenvariante von .'c'

</tbody></table>

Das '-' für allgemeine Konvertierungen definierte Flag gilt. Wenn das '#' Flag angegeben wird, wird ein FormatFlagsConversionMismatchException ausgelöst.

Die Breite ist für Allgemeine Konvertierungen definiert.

Die Genauigkeit ist nicht zutreffend. Wenn die Genauigkeit angegeben ist, wird eine IllegalFormatPrecisionException ausgelöst.

<h4>"dnum">Numeric</h4>

Numerische Konvertierungen werden in die folgenden Kategorien unterteilt:

<Ol>

<li>b Byte, Short, Integer und Long</b><li<>b>BigInteger</b><li b>float><and Double</b><li b li<>b>BigDecimal</b></ol><>

Numerische Typen werden gemäß dem folgenden Algorithmus formatiert:

<b>"L10nAlgorithm"> Zahlenlokalisierungsalgorithmus</b>

Nachdem Ziffern für den Ganzzahlteil, den Bruchteil und den Exponenten (je nach Datentyp) abgerufen wurden, wird die folgende Transformation angewendet:

<Ol>

<li> Jede Ziffer d in der Zeichenfolge wird durch eine gebietsschemaspezifische Ziffer ersetzt, die relativ zum java.text.DecimalFormatSymbols#getZeroDigit() zero digitz des aktuellen Gebietsschemas berechnet wird; d  - '0' +  z.

<li> Wenn ein Dezimaltrennzeichen vorhanden ist, wird ein gebietsschemaspezifisches java.text.DecimalFormatSymbols#getDecimalSeparator-Dezimaltrennzeichen ersetzt.

<li> Wenn das ',''&#92;u002c'Flag () "L10nGroup"> angegeben wird, wird das gebietsschemaspezifische Java.text.DecimalFormatSymbols#getGroupingSeparator-Gruppierungstrennzeichen eingefügt, indem der ganzzahlige Teil der Zeichenfolge von der geringsten zu den bedeutendsten Ziffern überprüft und ein Trennzeichen in Intervallen eingefügt wird, die durch die Java.text.DecimalFormat#getGroupingSize()-Gruppierungsgröße des Gebietsschemas definiert sind.

<li> Wenn das '0' Flag angegeben wird, werden die gebietsschemaspezifischen java.text.DecimalFormatSymbols#getZeroDigit()-Nullstellen nach dem Zeichenzeichen (sofern vorhanden) und vor der ersten Ziffer ohne Null eingefügt, bis die Länge der Zeichenfolge der angeforderten Feldbreite entspricht.

<li> Wenn der Wert negativ ist und das '(' Flag angegeben wird, wird ein '(' ('&#92;u0028') vorangestellt und ein ')' ('&#92;u0029') angefügt.

<li> Wenn der Wert negativ (oder gleitkomma negativ null) ist und '(' das Flag nicht angegeben wird, wird ein '-' ('&#92;u002d') vorangestellt.

<li> Wenn das '+' Flag angegeben ist und der Wert positiv oder null (oder gleitkomma-positive Null) ist, wird ein '+' ('&#92;u002b') vorangestellt.

</Ol>

Wenn der Wert NaN oder positive Unendlichkeit ist, werden die Literalzeichenfolgen "NaN" bzw. "Infinity" ausgegeben. Wenn der Wert negativ unendlich ist, lautet die Ausgabe "(Unendlich)", wenn das '(' Flag angegeben wird, andernfalls lautet die Ausgabe "-Infinity". Diese Werte sind nicht lokalisiert.

"dnint"><b> Byte, Short, Integer und Long </b>

Die folgenden Konvertierungen können auf byte, , shortByte, Shortund intInteger, und Longangewendet longwerden.

<table class="striped"><Untertitel style="display:none">IntConv</Untertitel>< tbody>

<tr><th scope="row" style="vertical-align:top">'d'<td style="vertical-align:top"'&#92;u0064'><td> Formatiert das Argument als ganze Dezimalzahl. Der Lokalisierungsalgorithmus wird angewendet.

Wenn das '0' Flag angegeben ist und der Wert negativ ist, tritt nach dem Vorzeichen die Null-Auffüllung auf.

Wenn das '#' Flag angegeben wird, wird ein FormatFlagsConversionMismatchException ausgelöst.

<tr><th scope="row" style="vertical-align:top">'o'<td style="vertical-align:top"'&#92;u006f'><td> Formatiert das Argument als ganze Zahl in Basis acht. Es wird keine Lokalisierung angewendet.

Wenn x negativ ist, ist das Ergebnis ein unsignierter Wert, der durch Hinzufügen von 2<sup>n</sup> zum Wert generiert wird, wobei n die Anzahl der Bits im Typ entspricht, die vom statischen SIZE Feld in den Klassen Byte#SIZE Byte, Short#SIZE Short, Integer#SIZE Integer oder Long#SIZE Long zurückgegeben werden.

Wenn das '#' Flag angegeben wird, beginnt die Ausgabe immer mit dem Radix-Indikator '0'.

Wenn das '0' Flag angegeben wird, wird die Ausgabe mit führenden Nullen zur Feldbreite nach einem beliebigen Vorzeichen aufgefüllt.

Wenn '(', , '+'"  " oder ',' Flags angegeben werden, wird ein FormatFlagsConversionMismatchException ausgelöst.

<tr><th scope="row" style="vertical-align:top">'x'<td style="vertical-align:top"'&#92;u0078'><td> Formatiert das Argument als ganze Zahl in basis sechzehn. Es wird keine Lokalisierung angewendet.

Wenn x negativ ist, ist das Ergebnis ein unsignierter Wert, der durch Hinzufügen von 2<sup>n</sup> zum Wert generiert wird, wobei n die Anzahl der Bits im Typ entspricht, die vom statischen SIZE Feld in den Klassen Byte#SIZE Byte, Short#SIZE Short, Integer#SIZE Integer oder Long#SIZE Long zurückgegeben werden.

Wenn das '#' Flag angegeben wird, beginnt die Ausgabe immer mit dem Radix-Indikator "0x".

Wenn das '0' Flag angegeben wird, wird die Ausgabe auf die Feldbreite mit führenden Nullen nach dem Radix-Indikator oder -Zeichen (falls vorhanden) gepolstert.

Wenn '(', '&nbsp;&nbsp;', '+'oder ',' Flags angegeben werden, wird ein FormatFlagsConversionMismatchException ausgelöst.

<tr><th scope="row" style="vertical-align:top"'X'><td style="vertical-align:top"'&#92;u0058'<>td> Die Großbuchstabenvariante von .'x' Die gesamte Zeichenfolge, die die Zahl darstellt, wird in Den Großbuchstaben String#toUpperCase konvertiert, einschließlich der 'x' (falls vorhanden) und aller hexadezimalen Ziffern'f' - 'a' ().'&#92;u0061' - '&#92;u0066'

</tbody></table>

Wenn die Konvertierung , oder ist 'o'und sowohl die '#' Flags als auch die '0' Flags angegeben sind, enthält das Ergebnis den Radix-Indikator ('0' für oktale und "0x" oder "0X" hexadezimale ), eine bestimmte Anzahl von Nullen (basierend auf der Breite) und den 'X' Wert. 'x'

Wenn das '-' Flag nicht angegeben wird, erfolgt die Leerraumfüllung vor dem Zeichen.

Die folgenden "intFlags">-Flags gelten für numerische Integralkonvertierungen:

<table class="striped"><Untertitel style="display:none">intFlags</Untertitel>< tbody>

<tr><th scope="row" style="vertical-align:top">'+'<td style="vertical-align:top"'&#92;u002b'><td> Erfordert, dass die Ausgabe ein positives Zeichen für alle positiven Zahlen enthält. Wenn dieses Flag nicht angegeben wird, enthalten nur negative Werte ein Zeichen.

Wenn sowohl die '+' Flags als '&nbsp;&nbsp;' auch angegeben werden, wird ein IllegalFormatFlagsException ausgelöst.

<tr><th scope="row" style="vertical-align:top"'&nbsp;&nbsp;'><td style="vertical-align:top"'&#92;u0020'<>td> Erfordert, dass die Ausgabe einen einzelnen zusätzlichen Leerraum ('&#92;u0020') für nicht negative Werte enthält.

Wenn sowohl die '+' Flags als '&nbsp;&nbsp;' auch angegeben werden, wird ein IllegalFormatFlagsException ausgelöst.

<tr><th scope="row" style="vertical-align:top">'0'<td style="vertical-align:top"'&#92;u0030'><td> Erfordert, dass die Ausgabe mit führenden java.text.DecimalFormatSymbols#getZeroDigit-Nullen auf die minimale Feldbreite nach einem beliebigen Zeichen- oder Radix-Indikator gepolstert werden muss, außer beim Konvertieren von NaN oder infinity. Wenn die Breite nicht angegeben wird, wird ein MissingFormatWidthException ausgelöst.

Wenn sowohl die '-' Flags als '0' auch angegeben werden, wird ein IllegalFormatFlagsException ausgelöst.

<tr><th scope="row" style="vertical-align:top">','<td style="vertical-align:top"'&#92;u002c'><td> Erfordert, dass die Ausgabe die gebietsschemaspezifischen java.text.DecimalFormatSymbols#getGroupingSeparator-Gruppentrennzeichen enthält, wie im Abschnitt "group" des Lokalisierungsalgorithmus beschrieben.

<tr><th scope="row" style="vertical-align:top"'('><td style="vertical-align:top">'&#92;u0028'<td> Erfordert, dass die Ausgabe ein '(' ('&#92;u0028') vorangestellt und ein ')' ('&#92;u0029') an negative Werte anfüge.

</tbody></table>

Wenn keine "intdFlags">-Flags angegeben werden, lautet die Standardformatierung wie folgt:

<ul>

<li> Die Ausgabe ist innerhalb der width<li> richtig begründet Negative Zahlen beginnen mit einem '-' ('&#92;u002d')

<li> Positive Zahlen und Null enthalten kein Vorzeichen oder zusätzliches führendes Leerzeichen

<li> Keine Gruppierungstrennzeichen enthalten

</ul>

Die Breite "intWidth"> ist die Mindestanzahl von Zeichen, die in die Ausgabe geschrieben werden sollen. Dies umfasst alle Zeichen, Ziffern, Gruppierungstrennzeichen, Radix-Indikator und Klammern. Wenn die Länge des konvertierten Werts kleiner als die Breite ist, wird die Ausgabe um Leerzeichen ('&#92;u0020') gepolstert, bis die Gesamtzahl der Zeichen der Breite entspricht. Der Abstand befindet sich standardmäßig auf der linken Seite. Wenn '-' ein Flag angegeben ist, befindet sich die Füllung auf der rechten Seite. Wenn die Breite nicht angegeben ist, gibt es kein Minimum.

Die Genauigkeit ist nicht anwendbar. Wenn die Genauigkeit angegeben ist, wird ein IllegalFormatPrecisionException ausgelöst.

"dnbint"><b> BigInteger </b>

Die folgenden Konvertierungen können auf java.math.BigIntegerangewendet werden.

<table class="striped"><Untertitel style="display:none">bIntConv</Untertitel>< tbody>

<tr><th scope="row" style="vertical-align:top">'d'<td style="vertical-align:top"'&#92;u0064'><td> Erfordert, dass die Ausgabe als ganze Dezimalzahl formatiert wird. Der Lokalisierungsalgorithmus wird angewendet.

Wenn das '#' Flag angegeben FormatFlagsConversionMismatchException wird, wird ausgelöst.

<tr><th scope="row" style="vertical-align:top">'o'<td style="vertical-align:top"'&#92;u006f'><td> Erfordert die Formatierung der Ausgabe als ganze Zahl in Basis acht. Es wird keine Lokalisierung angewendet.

Wenn x negativ ist, ist das Ergebnis ein signierter Wert, der mit '-' ('&#92;u002d') beginnt. Die signierte Ausgabe ist für diesen Typ zulässig, da es im Gegensatz zu den primitiven Typen nicht möglich ist, ein unsigniertes Äquivalent zu erstellen, ohne eine explizite Datentypgröße anzunehmen.

Wenn x positiv oder null ist und das '+' Flag angegeben wird, beginnt das Ergebnis mit '+' ('&#92;u002b').

Wenn das '#' Flag angegeben ist, beginnt die Ausgabe immer mit '0' dem Präfix.

Wenn das '0' Flag angegeben wird, wird die Ausgabe mit führenden Nullen zur Feldbreite nach einem beliebigen Vorzeichen aufgefüllt.

Wenn das ',' Flag angegeben wird, wird ein FormatFlagsConversionMismatchException ausgelöst.

<tr><th scope="row" style="vertical-align:top">'x'<td style="vertical-align:top"'&#92;u0078'><td> Erfordert die Formatierung der Ausgabe als ganze Zahl in Basis sechzehn. Es wird keine Lokalisierung angewendet.

Wenn x negativ ist, ist das Ergebnis ein signierter Wert, der mit '-' ('&#92;u002d') beginnt. Die signierte Ausgabe ist für diesen Typ zulässig, da es im Gegensatz zu den primitiven Typen nicht möglich ist, ein unsigniertes Äquivalent zu erstellen, ohne eine explizite Datentypgröße anzunehmen.

Wenn x positiv oder null ist und das '+' Flag angegeben wird, beginnt das Ergebnis mit '+' ('&#92;u002b').

Wenn das '#' Flag angegeben wird, beginnt die Ausgabe immer mit dem Radix-Indikator "0x".

Wenn das '0' Flag angegeben wird, wird die Ausgabe auf die Feldbreite mit führenden Nullen nach dem Radix-Indikator oder -Zeichen (falls vorhanden) gepolstert.

Wenn das ',' Flag angegeben wird, wird ein FormatFlagsConversionMismatchException ausgelöst.

<tr><th scope="row" style="vertical-align:top"'X'><td style="vertical-align:top"'&#92;u0058'<>td> Die Großbuchstabenvariante von .'x' Die gesamte Zeichenfolge, die die Zahl darstellt, wird in Den Großbuchstaben String#toUpperCase konvertiert, einschließlich der 'x' (falls vorhanden) und aller hexadezimalen Ziffern'f' - 'a' ().'&#92;u0061' - '&#92;u0066'

</tbody></table>

Wenn die Konvertierung 'o'ist , 'x'oder 'X' und sowohl die '#' Flags als auch die '0' Flags angegeben werden, enthält das Ergebnis den Basisindikator ('0' für oktale und "0x" oder "0X" hexadezimale ), eine bestimmte Anzahl von Nullen (basierend auf der Breite) und den Wert.

Wenn das '0' Flag angegeben ist und der Wert negativ ist, tritt nach dem Vorzeichen die Null-Auffüllung auf.

Wenn das '-' Flag nicht angegeben wird, erfolgt die Leerraumfüllung vor dem Zeichen.

Alle für Byte, Short, Integer und Long definierten Flags gelten. Das Standardverhalten, wenn keine Flags angegeben werden, ist das gleiche wie für Byte, Short, Integer und Long.

Die Spezifikation der Breite entspricht der Für Byte, Short, Integer und Long.

Die Genauigkeit ist nicht anwendbar. Wenn die Genauigkeit angegeben ist, wird ein IllegalFormatPrecisionException ausgelöst.

"dndec"><b> Float und Double</b>

Die folgenden Konvertierungen können auf float, Floatund doubleDoubleangewendet werden.

<table class="striped"><Untertitel style="display:none">floatConv</Untertitel>< tbody>

<tr><th scope="row" style="vertical-align:top"'e'><td style="vertical-align:top"'&#92;u0065'<>td> Erfordert die Formatierung der Ausgabe mit "scientific">computerisierter wissenschaftlicher Notation. Der Lokalisierungsalgorithmus wird angewendet.

Die Formatierung der Größe m hängt von ihrem Wert ab.

Wenn m NaN oder unendlich ist, werden die Literalzeichenfolgen "NaN" bzw. "Infinity" ausgegeben. Diese Werte sind nicht lokalisiert.

Wenn m positiv-null oder negativ-null ist, ist "+00"der Exponent .

Andernfalls ist das Ergebnis eine Zeichenfolge, die das Vorzeichen und die Größe (absoluter Wert) des Arguments darstellt. Die Formatierung des Zeichens wird im Lokalisierungsalgorithmus beschrieben. Die Formatierung der Größe m hängt von ihrem Wert ab.

Sei n die eindeutige ganze Zahl, sodass 10<sup>n</sup> <= m < 10<sup>n+1</sup>; dann der mathematisch exakte Quotient von m und 10<sup>n</sup> sein soll, sodass 1 <= a <; 10. Die Größe wird dann als ganzzahliger Teil eines dargestellt, als einzelne Dezimalzahl, gefolgt von dem Dezimaltrennzeichen gefolgt von Dezimalstellen, die den Bruchteil eines darstellen, gefolgt von dem kleinbuchstabenspezifischen gebietsschemaspezifischen java.text.DecimalFormatSymbols#getExponentSeparator-Exponententrennzeichen (z. B. 'e'), gefolgt von dem Zeichen des Exponenten, gefolgt von einer Darstellung von n als dezimale ganze Zahl. wie von der -Methode Long#toString(long, int)erzeugt und mit null aufgefüllt, um mindestens zwei Ziffern zu enthalten.

Die Anzahl der Ziffern im Ergebnis für den Bruchteil von m oder a entspricht der Genauigkeit. Wenn die Genauigkeit nicht angegeben wird, ist 6der Standardwert . Wenn die Genauigkeit kleiner als die Anzahl der Ziffern ist, die nach dem Dezimalpunkt in der Zeichenfolge angezeigt werden, die von Float#toString(float) bzw Double#toString(double) . zurückgegeben wird, wird der Wert mithilfe des Algorithmus java.math.RoundingMode#HALF_UP Halbaufrundenalgorithmus gerundet. Andernfalls können Nullen angefügt werden, um die Genauigkeit zu erreichen. Verwenden Sie Float#toString(float) für eine kanonische Darstellung des Werts oder Double#toString(double) entsprechend.

Wenn das ',' Flag angegeben wird, wird ein FormatFlagsConversionMismatchException ausgelöst.

<tr><th scope="row" style="vertical-align:top"'E'><td style="vertical-align:top"'&#92;u0045'<>td> Die Großbuchstabenvariante von .'e' Das Exponentensymbol ist das großbuchstabenspezifische gebietsschemaspezifische java.text.DecimalFormatSymbols#getExponentSeparator-Exponenttrennzeichen (z. B. 'E').

<tr><th scope="row" style="vertical-align:top">'g'<td style="vertical-align:top"'&#92;u0067'><td> Erfordert, dass die Ausgabe in der allgemeinen wissenschaftlichen Notation formatiert wird, wie unten beschrieben. Der Lokalisierungsalgorithmus wird angewendet.

Nach dem Runden für die Genauigkeit hängt die Formatierung der resultierenden Größe m von ihrem Wert ab.

Wenn m größer oder gleich 10<sup-4<>/sup>, aber kleiner als 10<Sup-Genauigkeit></Sup> ist, wird es im Dezimalformat dargestellt.

Wenn m kleiner als 10<sup-4></sup> oder größer als oder gleich 10<Sup></Sup> ist, wird es in der computergestützten wissenschaftlichen Notation dargestellt.

Die Gesamtzahl der signifikanten Ziffern in m entspricht der Genauigkeit. Wenn die Genauigkeit nicht angegeben wird, ist 6der Standardwert . Wenn die Genauigkeit ist 0, wird dies als 1festgelegt.

Wenn das '#' Flag angegeben wird, wird ein FormatFlagsConversionMismatchException ausgelöst.

<tr><th scope="row" style="vertical-align:top"'G'><td style="vertical-align:top"'&#92;u0047'<>td> Die Großbuchstabenvariante von .'g'

<tr><th scope="row" style="vertical-align:top"'f'><td style="vertical-align:top"'&#92;u0066'<>td> Erfordert, dass die Ausgabe im Dezimalformat> formatiert wird. Der Lokalisierungsalgorithmus wird angewendet.

Das Ergebnis ist eine Zeichenfolge, die das Vorzeichen und die Größe (absoluter Wert) des Arguments darstellt. Die Formatierung des Zeichens wird im Lokalisierungsalgorithmus beschrieben. Die Formatierung der Größe m hängt von ihrem Wert ab.

Wenn m NaN oder unendlich, werden die Literalzeichenfolgen "NaN" bzw. "Infinity" ausgegeben. Diese Werte sind nicht lokalisiert.

Die Größe wird als ganzzahliger Teil von m ohne führende Nullen formatiert, gefolgt von dem Dezimaltrennzeichen gefolgt von einer oder mehreren Dezimalstellen, die den Bruchteil von m darstellen.

Die Anzahl der Ziffern im Ergebnis für den Bruchteil von m oder a entspricht der Genauigkeit. Wenn die Genauigkeit nicht angegeben wird, ist 6der Standardwert . Wenn die Genauigkeit kleiner als die Anzahl der Ziffern ist, die nach dem Dezimalpunkt in der Zeichenfolge angezeigt werden, die von Float#toString(float) bzw Double#toString(double) . zurückgegeben wird, wird der Wert mithilfe des Algorithmus java.math.RoundingMode#HALF_UP Halbaufrundenalgorithmus gerundet. Andernfalls können Nullen angefügt werden, um die Genauigkeit zu erreichen. Verwenden Sie Float#toString(float) für eine kanonische Darstellung des Werts oder Double#toString(double) entsprechend.

<tr><th scope="row" style="vertical-align:top">'a'<td style="vertical-align:top"'&#92;u0061'><td> Erfordert die Formatierung der Ausgabe in hexadezimaler exponentieller Form. Es wird keine Lokalisierung angewendet.

Das Ergebnis ist eine Zeichenfolge, die das Vorzeichen und die Größe (absoluter Wert) des Arguments x darstellt.

Wenn x negativ oder negativ null ist, beginnt das Ergebnis mit '-' ('&#92;u002d').

Wenn x positiv oder positiv null ist und das '+' Flag angegeben wird, beginnt das Ergebnis mit '+' ('&#92;u002b').

Die Formatierung der Größe m hängt von ihrem Wert ab.

<ul>

<li> Wenn der Wert NaN oder unendlich ist, werden die Literalzeichenfolgen "NaN" bzw. "Infinity" ausgegeben.

<li> Wenn m null ist, wird es durch die Zeichenfolge "0x0.0p0"dargestellt.

<li> Wenn m ein double Wert mit einer normalisierten Darstellung ist, werden Teilzeichenfolgen verwendet, um die Significand- und Exponentenfelder darzustellen. Das Significand wird durch die Zeichen "0x1." gefolgt von der hexadezimalen Darstellung des restlichen Zeichens als Bruch dargestellt. Der Exponent wird durch 'p' ('&#92;u0070') dargestellt, gefolgt von einer Dezimalzeichenfolge des unvoreingenommenen Exponenten, als ob er durch Aufrufen Integer#toString(int) Integer.toString auf den Exponentenwert erzeugt wird. Wenn die Genauigkeit angegeben wird, wird der Wert auf die angegebene Anzahl von Hexadezimalstellen gerundet.

<li> Wenn m ein double Wert mit einer subnormalen Darstellung ist, wird das Significand durch die Zeichen '0x0.' , gefolgt von der hexadezimalen Darstellung des restlichen Zeichens als Bruch und der Exponent 'p-1022'dargestellt, wenn die Genauigkeit nicht im Bereich von 1 bis 12 angegeben wird. Wenn die Genauigkeit im Intervall [1,  12], wird der Unternormalwert so normalisiert, dass er mit den Zeichen '0x1.'beginnt, gerundet auf die Anzahl der Hexadezimalstellen der Genauigkeit, und der Exponent entsprechend angepasst wird. Beachten Sie, dass mindestens eine nonzero-Ziffer in einem subnormalen Significand vorhanden sein muss.

</ul>

Wenn die '(' Flags oder ',' angegeben werden, wird ein FormatFlagsConversionMismatchException ausgelöst.

<tr><th scope="row" style="vertical-align:top"'A'><td style="vertical-align:top"'&#92;u0041'<>td> Die Großbuchstabenvariante von .'a' Die gesamte Zeichenfolge, die die Zahl darstellt, wird in Großbuchstaben konvertiert, einschließlich der 'x' () und 'p' ('&#92;u0070' und aller hexadezimalen Ziffern - 'a''f' ().'&#92;u0061' - '&#92;u0066''&#92;u0078'

</tbody></table>

Alle für Byte, Short, Integer und Long definierten Flags gelten.

Wenn das '#' Flag angegeben ist, ist immer das Dezimaltrennzeichen vorhanden.

Wenn keine "floatdFlags">-Flags angegeben werden, lautet die Standardformatierung wie folgt:

<ul>

<li> Die Ausgabe ist innerhalb der width<li> richtig begründet Negative Zahlen beginnen mit einem '-'<li> Positive Zahlen und positive Null enthalten kein Vorzeichen oder zusätzliches führendes Leerzeichen.

<li> Keine Gruppierungstrennzeichen enthalten

<li> Das Dezimaltrennzeichen wird nur angezeigt, wenn eine Ziffer folgt

</ul>

Die Breite "floatDWidth"> ist die Mindestanzahl von Zeichen, die in die Ausgabe geschrieben werden sollen. Dies umfasst alle Zeichen, Ziffern, Gruppierungstrennzeichen, Dezimaltrennzeichen, exponentielles Symbol, Radix-Indikator, Klammern und Zeichenfolgen, die Unendlichkeit und NaN darstellen, sofern zutreffend. Wenn die Länge des konvertierten Werts kleiner als die Breite ist, wird die Ausgabe um Leerzeichen ('&#92;u0020') gepolstert, bis die Gesamtzahl der Zeichen der Breite entspricht. Der Abstand befindet sich standardmäßig auf der linken Seite. Wenn das '-' Flag angegeben wird, befindet sich die Füllung auf der rechten Seite. Wenn die Breite nicht angegeben ist, gibt es kein Minimum.

Wenn die "floatDPrec">-Konvertierung oder ist 'e', 'E''f'ist die Genauigkeit die Anzahl der Ziffern nach dem Dezimaltrennzeichen. Wenn die Genauigkeit nicht angegeben wird, wird angenommen, dass sie ist 6.

Wenn die Konvertierung oder 'G'ist'g', ist die Genauigkeit die Gesamtzahl der signifikanten Ziffern in der resultierenden Größe nach der Rundung. Wenn die Genauigkeit nicht angegeben wird, ist 6der Standardwert . Wenn die Genauigkeit ist 0, wird dies als 1festgelegt.

Wenn die Konvertierung oder 'A'ist'a', ist die Genauigkeit die Anzahl der Hexadezimalstellen nach dem Radixpunkt. Wenn die Genauigkeit nicht angegeben wird, werden alle von zurückgegebenen Double#toHexString(double) Ziffern ausgegeben.

"dnbdec"><b> BigDecimal </b>

Die folgenden Konvertierungen können angewendet java.math.BigDecimal BigDecimalwerden.

<table class="striped"><Untertitel style="display:none">floatConv</Untertitel>< tbody>

<tr><th scope="row" style="vertical-align:top"'e'><td style="vertical-align:top"'&#92;u0065'<>td> Erfordert die Formatierung der Ausgabe mit "bscientific">computerisierter wissenschaftlicher Notation. Der Lokalisierungsalgorithmus wird angewendet.

Die Formatierung der Größe m hängt von ihrem Wert ab.

Wenn m positiv-null oder negativ-null ist, ist "+00"der Exponent .

Andernfalls ist das Ergebnis eine Zeichenfolge, die das Vorzeichen und die Größe (absoluter Wert) des Arguments darstellt. Die Formatierung des Zeichens wird im Lokalisierungsalgorithmus beschrieben. Die Formatierung der Größe m hängt von ihrem Wert ab.

Sei n die eindeutige ganze Zahl, sodass 10<sup>n</sup> <= m < 10<sup>n+1</sup>; dann der mathematisch exakte Quotient von m und 10<sup>n</sup> sein soll, sodass 1 <= a <; 10. Die Größe wird dann als ganzzahliger Teil von a, als einzelne Dezimalzahl, gefolgt von dem Dezimaltrennzeichen gefolgt von Dezimalstellen , die den Bruchteil eines darstellen, gefolgt vom Exponentensymbol 'e' ('&#92;u0065'), gefolgt vom Zeichen des Exponenten, gefolgt von einer Darstellung von n als Dezimalzahl, wie von der -Methode Long#toString(long, int)erzeugt. und mit null aufgefüllt, um mindestens zwei Ziffern zu enthalten.

Die Anzahl der Ziffern im Ergebnis für den Bruchteil von m oder a entspricht der Genauigkeit. Wenn die Genauigkeit nicht angegeben wird, ist 6der Standardwert . Wenn die Genauigkeit kleiner als die Anzahl der Ziffern rechts neben dem Dezimalpunkt ist, wird der Wert mithilfe des Algorithmus java.math.RoundingMode#HALF_UP halber Aufrundeungsalgorithmus gerundet. Andernfalls können Nullen angefügt werden, um die Genauigkeit zu erreichen. Verwenden Sie BigDecimal#toString()für eine kanonische Darstellung des Werts .

Wenn das ',' Flag angegeben wird, wird ein FormatFlagsConversionMismatchException ausgelöst.

<tr><th scope="row" style="vertical-align:top"'E'><td style="vertical-align:top"'&#92;u0045'<>td> Die Großbuchstabenvariante von .'e' Das Exponentensymbol ist 'E' ('&#92;u0045').

<tr><th scope="row" style="vertical-align:top">'g'<td style="vertical-align:top"'&#92;u0067'><td> Erfordert, dass die Ausgabe in der allgemeinen wissenschaftlichen Notation formatiert wird, wie unten beschrieben. Der Lokalisierungsalgorithmus wird angewendet.

Nach der Rundung für die Genauigkeit hängt die Formatierung der resultierenden Größe m von ihrem Wert ab.

Wenn m größer oder gleich 10<sup-4<>/sup>, aber kleiner als 10<Sup-Genauigkeit></Sup> ist, wird es im Dezimalformat dargestellt.

Wenn m kleiner als 10<sup-4></sup> oder größer oder gleich 10<Sup>Precision</sup> ist, wird es in der computergestützten wissenschaftlichen Notation dargestellt.

Die Gesamtzahl der signifikanten Ziffern in m entspricht der Genauigkeit. Wenn die Genauigkeit nicht angegeben wird, ist 6der Standardwert . Wenn die Genauigkeit ist 0, wird als angenommen 1.

Wenn das '#' Flag angegeben wird, wird eine FormatFlagsConversionMismatchException ausgelöst.

<tr><th scope="row" style="vertical-align:top"'G'><td style="vertical-align:top"'&#92;u0047'<>td> Die Großbuchstabenvariante von .'g'

<tr><th scope="row" style="vertical-align:top"'f'><td style="vertical-align:top"'&#92;u0066'<>td> Erfordert die Formatierung der Ausgabe im Dezimalformat "bdecimal".> Der Lokalisierungsalgorithmus wird angewendet.

Das Ergebnis ist eine Zeichenfolge, die das Vorzeichen und die Größe (absoluter Wert) des Arguments darstellt. Die Formatierung des Zeichens wird im Lokalisierungsalgorithmus beschrieben. Die Formatierung der Größe m hängt von ihrem Wert ab.

Die Größe wird als ganzzahliger Teil von m ohne führende Nullen formatiert, gefolgt vom Dezimaltrennzeichen gefolgt von einer oder mehreren Dezimalstellen, die den Bruchteil von m darstellen.

Die Anzahl der Ziffern im Ergebnis für den Bruchteil von m oder a entspricht der Genauigkeit. Wenn die Genauigkeit nicht angegeben wird, ist 6der Standardwert . Wenn die Genauigkeit kleiner als die Anzahl der Ziffern rechts vom Dezimaltrennzeichen ist, wird der Wert mithilfe des java.math.RoundingMode#HALF_UP Halbaufrundenalgorithmus gerundet. Andernfalls können Nullen angefügt werden, um die Genauigkeit zu erreichen. Verwenden Sie BigDecimal#toString()für eine kanonische Darstellung des Werts .

</tbody></table>

Alle für Byte, Short, Integer und Long definierten Flags gelten.

Wenn das '#' Flag angegeben wird, ist das Dezimaltrennzeichen immer vorhanden.

Das Standardverhalten, wenn keine Flags angegeben werden, ist dasselbe wie für Float und Double.

Die Angabe von Breite und Genauigkeit entspricht der Definition für Float und Double.

<h4>"ddt">Datum/Uhrzeit</h4>

Diese Konvertierung kann auf long, , LongCalendarund<TemporalAccessor TemporalAccessorDate table class="striped"><Untertitel style="display:none">DTConv</Untertitel>< tbody angewendet werden.>

<tr><th scope="row" style="vertical-align:top">'t'<td style="vertical-align:top"'&#92;u0074'><td> Präfix für Datums- und Uhrzeitkonvertierungszeichen. <tr><th scope="row" style="vertical-align:top"'T'><td style="vertical-align:top"'&#92;u0054'<>td> Die Großbuchstabenvariante von .'t'

</tbody></table>

Die folgenden Datums- und Uhrzeitkonvertierungszeichensuffixe sind für die 't' Konvertierungen und 'T' definiert. Die Typen ähneln denen, die von GNU date und POSIX strftime(3c)definiert wurden, aber nicht vollständig. Zusätzliche Konvertierungstypen werden für den Zugriff auf Java-spezifische Funktionen bereitgestellt (z. B. 'L' für Millisekunden innerhalb der Sekunde).

Die folgenden Konvertierungszeichen werden zum Formatieren von Zeiten verwendet:

<table class="striped"><Untertitel style="display:none">time</Untertitel>< tbody>

<tr><th scope="row" style="vertical-align:top">'H'<td style="vertical-align:top">'&#92;u0048'<td> Stunde des Tages für die 24-Stunden-Uhr, formatiert als zwei Ziffern mit einer führenden Null nach Bedarf, d. h. 00 - 23. 00 entspricht Mitternacht.

<tr><th scope="row" style="vertical-align:top"'I'><td style="vertical-align:top"'&#92;u0049'<>td> Hour für die 12-Stunden-Uhr, formatiert als zwei Ziffern mit einer führenden Null nach Bedarf, d. h. . 01 - 12 01 entspricht einer Uhr (entweder morgens oder nachmittags).

<tr><th scope="row" style="vertical-align:top">'k'<td style="vertical-align:top">'&#92;u006b'<td> Stunde des Tages für die 24-Stunden-Uhr, d. h. 0 - 23entspricht Mitternacht. 0

<tr><th scope="row" style="vertical-align:top">'l'<td style="vertical-align:top">'&#92;u006c'<td> Hour für die 12-Stunden-Uhr, d. h. 1 - 12entspricht 1 einer Uhr (entweder morgens oder nachmittags).

<tr><th scope="row" style="vertical-align:top"'M'><td style="vertical-align:top"'&#92;u004d'<>td> Minute innerhalb der Stunde formatiert als zwei Ziffern mit einer führenden Null nach Bedarf, d. h. . 00 - 59

<tr><th scope="row" style="vertical-align:top">'S'<td style="vertical-align:top">'&#92;u0053'<td> Sekunden innerhalb der Minute, formatiert als zwei Ziffern mit einer führenden Null nach Bedarf, d. h. 00 - 60 ("60" ist ein spezieller Wert, der zur Unterstützung von Schaltsekunden erforderlich ist).

<tr><th scope="row" style="vertical-align:top"'L'><td style="vertical-align:top"'&#92;u004c'<>td> Millisecond innerhalb der zweiten, formatiert als drei Ziffern mit führenden Nullen nach Bedarf, d. h. . 000 - 999

<tr><th scope="row" style="vertical-align:top"'N'><td style="vertical-align:top"'&#92;u004e'<>td> Nanosecond innerhalb der sekunde, formatiert als neun Ziffern mit führenden Nullen, d. h. . 000000000 - 999999999 Die Genauigkeit dieses Werts wird durch die Auflösung des zugrunde liegenden Betriebssystems oder der zugrunde liegenden Hardware begrenzt.

<tr><th scope="row" style="vertical-align:top"'p'><td style="vertical-align:top"'&#92;u0070'<>td> Locale-specific java.text.DateFormatSymbols#getAmPmStrings morning or afternoon marker in Kleinbuchstaben, z.B."am oder "pm". Die Verwendung des Konvertierungspräfixes 'T' erzwingt diese Ausgabe in Großbuchstaben. (Beachten Sie, dass eine 'p' Kleinbuchstabenausgabe erzeugt wird. Dies unterscheidet sich von GNU date und POSIX strftime(3c) , die eine Großbuchstabenausgabe erzeugen.)

<tr><th scope="row" style="vertical-align:top"><'z'td style="vertical-align:top"<'&#92;u007a'>td> RFC 822 style numeric time zone offset from GMT, z. B. . -0800 Dieser Wert wird bei Bedarf für die Sommerzeit angepasst. Für long, Longund Date ist die verwendete Zeitzone die TimeZone#getDefault()-Standardzeitzone für diese instance des virtuellen Java-Computers.

<tr><th scope="row" style="vertical-align:top">'Z'<td style="vertical-align:top"'&#92;u005a'><td> Eine Zeichenfolge, die die Abkürzung für die Zeitzone darstellt. Dieser Wert wird bei Bedarf für die Sommerzeit angepasst. Für long, Longund Date ist die verwendete Zeitzone die TimeZone#getDefault()-Standardzeitzone für diese instance des virtuellen Java-Computers. Das Gebietsschema des Formatters ersetzt das Gebietsschema des Arguments (falls vorhanden).

<tr><th scope="row" style="vertical-align:top"<'s'>td style="vertical-align:top"'&#92;u0073'><td> Sekunden seit Beginn der Epoche ab dem 1. Januar 1970 00:00:00 UTC, d. h. Long.MIN_VALUE/1000 zu .Long.MAX_VALUE/1000

<tr><th scope="row" style="vertical-align:top"<'Q'>td style="vertical-align:top"'&#92;u004f'><td> Millisekunden seit Beginn der Epoche ab dem 1. Januar 1970 00:00:00 UTC, d. h. Long.MIN_VALUE an .Long.MAX_VALUE Die Genauigkeit dieses Werts wird durch die Auflösung des zugrunde liegenden Betriebssystems oder der zugrunde liegenden Hardware begrenzt.

</tbody></table>

Die folgenden Konvertierungszeichen werden zum Formatieren von Datumsangaben verwendet:

<table class="striped"><Untertitel style="display:none">date</Untertitel>< tbody>

<tr><th scope="row" style="vertical-align:top">'B'<td style="vertical-align:top">'&#92;u0042'<td> Locale-specific java.text.DateFormatSymbols#getMonths full month name, z. B. . "February""January"

<tr><th scope="row" style="vertical-align:top">'b'<td style="vertical-align:top">'&#92;u0062'<td> Locale-specific java.text.DateFormatSymbols#getShortMonths abgekürzter Monatsname, z. B. "Jan", . "Feb"

<tr><th scope="row" style="vertical-align:top"'h'><td style="vertical-align:top"'&#92;u0068'<>td> Identisch mit .'b'

<tr><th scope="row" style="vertical-align:top">'A'<td style="vertical-align:top"<'&#92;u0041'>td> Locale-specific full name of the java.text.DateFormatSymbols#getWeekdays day of the week, z.B. "Sunday", "Monday"<tr><th scope="row" style="vertical-align:top"'a'><td style="vertical-align:top"><'&#92;u0061'td> Locale-specific short name of the java.text.DateFormatSymbols#getShortWeekdays day of the week, z.B. "Sun", tr><"Mon"<th scope="row" style="vertical-align:top">'C'<td style="vertical-align:top"<'&#92;u0043'>td> Vierstelliges Jahr dividiert durch 100, formatiert als zwei Ziffern mit führendem Nullzeichen nach Bedarf, d.h.<00 - 99 tr><th scope="row" style="vertical-align:top">'Y'<td style="vertical-align:top">'&#92;u0059'<td> Year, formatiert auf mindestens vier Ziffern mit führenden Nullen nach Bedarf, z. B. 0092 gleich 92 CE für den gregorianischen Kalender.

<tr><th scope="row" style="vertical-align:top"'y'><td style="vertical-align:top"'&#92;u0079'<>td> Letzte zwei Ziffern des Jahres, die nach Bedarf mit führenden Nullen formatiert sind, d. h. . 00 - 99

<tr><th scope="row" style="vertical-align:top"'j'><td style="vertical-align:top"'&#92;u006a'<>td> Day of year, formatiert als drei Ziffern mit führenden Nullen, z. B. 001 - 366 für den gregorianischen Kalender. 001 entspricht dem ersten Tag des Jahres.

<tr><th scope="row" style="vertical-align:top"<'m'>td style="vertical-align:top">'&#92;u006d'<td> Month, formatiert als zwei Ziffern mit führenden Nullen nach Bedarf, d. h. 01 - 13, wobei "01" der erste Monat des Jahres ist und ("13" ein spezieller Wert ist, der zur Unterstützung von Mondkalendern erforderlich ist).

<tr><th scope="row" style="vertical-align:top">'d'<td style="vertical-align:top">'&#92;u0064'<td> Day of month, formatiert als zwei Ziffern mit führenden Nullen nach Bedarf, d. h. 01 - 31, wobei "01" der erste Tag des Monats ist.

<tr><th scope="row" style="vertical-align:top">'e'<td style="vertical-align:top">'&#92;u0065'<td> Day of month, formatiert als zwei Ziffern, d.h. 1 - 31 wobei "1" der erste Tag des Monats ist.

</tbody></table>

Die folgenden Konvertierungszeichen werden zum Formatieren gängiger Datums-/Uhrzeitkompositionen verwendet.

<table class="striped"><Untertitel style="display:none">composites</Untertitel>< tbody>

<tr><th scope="row" style="vertical-align:top"><'R'td style="vertical-align:top"'&#92;u0052'><td> Time formatiert für die 24-Stunden-Uhr als<"%tH:%tM" tr><th scope="row" style="vertical-align:top"<'T'>td style="vertical-align:top"'&#92;u0054'<>td> Time formatiert für die 24-Stunden-Uhr als ."%tH:%tM:%tS"

<tr><th scope="row" style="vertical-align:top"'r'><td style="vertical-align:top"'&#92;u0072'<>td> Time formatiert für die 12-Stunden-Uhr als ."%tI:%tM:%tS %Tp" Die Position des Markers am Morgen oder Nachmittag ('%Tp') kann gebietsschemaabhängig sein.

<tr><th scope="row" style="vertical-align:top"'D'><td style="vertical-align:top"'&#92;u0044'<>td> Datum formatiert als ."%tm/%td/%ty"

<tr><th scope="row" style="vertical-align:top"><'F'td style="vertical-align:top"<'&#92;u0046'>td> ISO 8601 complete date formatiert als ."%tY-%tm-%td"

<tr><th scope="row" style="vertical-align:top">'c'<td style="vertical-align:top">'&#92;u0063'<td> Datum und Uhrzeit formatiert als "%ta %tb %td %tT %tZ %tY", z. B. . "Sun Jul 20 16:17:00 EDT 1969"

</tbody></table>

Das '-' für allgemeine Konvertierungen definierte Flag gilt. Wenn das '#' Flag angegeben wird, wird ein FormatFlagsConversionMismatchException ausgelöst.

Die Breite ist die mindeste Anzahl von Zeichen, die in die Ausgabe geschrieben werden sollen. Wenn die Länge des konvertierten Werts kleiner als width ist, wird die Ausgabe um Leerzeichen ('&#92;u0020') aufgefüllt, bis die Gesamtanzahl der Zeichen der Breite entspricht. Der Abstand befindet sich standardmäßig auf der linken Seite. Wenn das '-' Flag angegeben wird, befindet sich der Abstand auf der rechten Seite. Wenn die Breite nicht angegeben ist, gibt es kein Minimum.

Die Genauigkeit ist nicht zutreffend. Wenn die Genauigkeit angegeben ist, wird eine IllegalFormatPrecisionException ausgelöst.

<h4>"dper">Percent</h4>

Die Konvertierung entspricht keinem Argument.

<table class="striped"><Untertitel style="display:none">DTConv</Untertitel>< tbody>

<tr><th scope="row" style="vertical-align:top"'%'<>td> Das Ergebnis ist ein Literal '%' ()'&#92;u0025'

Die Breite ist die mindeste Anzahl von Zeichen, die in die Ausgabe geschrieben werden sollen, einschließlich der '%'. Wenn die Länge des konvertierten Werts kleiner als width ist, wird die Ausgabe um Leerzeichen ('&#92;u0020') aufgefüllt, bis die Gesamtanzahl der Zeichen der Breite entspricht. Der Abstand befindet sich auf der linken Seite. Wenn die Breite nicht angegeben ist, wird nur der '%' ausgegeben.

Das '-' für allgemeine Konvertierungen definierte Flag gilt. Wenn andere Flags bereitgestellt werden, wird eine FormatFlagsConversionMismatchException ausgelöst.

Die Genauigkeit ist nicht zutreffend. Wenn die Genauigkeit angegeben ist, wird ein IllegalFormatPrecisionException ausgelöst.

</tbody></table>

<h4>"dls">Zeilentrennzeichen</h4>

Die Konvertierung entspricht keinem Argument.

<table class="striped"><Untertitel style="display:none">DTConv</Untertitel>< tbody>

<tr><th scope="row" style="vertical-align:top"><'n'td> das plattformspezifische Zeilentrennzeichen, das von zurückgegeben wird.System#lineSeparator()

</tbody></table>

Flags, Breite und Genauigkeit sind nicht anwendbar. Wenn eine bereitgestellt IllegalFormatFlagsExceptionwird, IllegalFormatWidthExceptionwerden , bzw IllegalFormatPrecisionException. ausgelöst.

<h4>"dpos">Argument Index</h4>

Formatbezeichner können auf Argumente auf drei Arten verweisen:

<ul>

<li>Explizite Indizierung wird verwendet, wenn der Formatbezeichner einen Argumentindex enthält. Der Argumentindex ist eine ganzzahlige Dezimalzahl, die die Position des Arguments in der Argumentliste angibt. Auf das erste Argument wird durch "1$", das zweite durch "2$" usw. verwiesen. Auf ein Argument kann mehrmals verwiesen werden.

Beispiel:

<Blockquote>

formatter.format("%4$s %3$s %2$s %1$s %4$s %3$s %2$s %1$s",
                               "a", "b", "c", "d")
              // -&gt; "d c b a d c b a"

</Blockquote>

<li>Relative Indizierung wird verwendet, wenn der Formatbezeichner ein '<' Flag ('&#92;u003c') enthält, das dazu führt, dass das Argument für den vorherigen Formatbezeichner wieder verwendet wird. Wenn kein vorheriges Argument vorhanden ist, wird ein MissingFormatArgumentException ausgelöst.

<Blockquote>

formatter.format("%s %s %&lt;s %&lt;s", "a", "b", "c", "d")
               // -&gt; "a b b b"
               // "c" and "d" are ignored because they are not referenced

</Blockquote>

<die>gewöhnliche Indizierung wird verwendet, wenn der Formatbezeichner weder einen Argumentindex noch ein '<' Flag enthält. Jedem Formatbezeichner, der die gewöhnliche Indizierung verwendet, wird ein sequenzieller impliziter Index in der Argumentliste zugewiesen, der unabhängig von den Indizes ist, die von der expliziten oder relativen Indizierung verwendet werden.

<Blockquote>

formatter.format("%s %s %s %s", "a", "b", "c", "d")
              // -&gt; "a b c d"

</Blockquote>

</ul>

Es ist möglich, eine Formatzeichenfolge zu verwenden, die alle Formen der Indizierung verwendet, z. B.:

<Blockquote>

formatter.format("%2$s %s %&lt;s %s", "a", "b", "c", "d")
              // -&gt; "b a a b"
              // "c" and "d" are ignored because they are not referenced

</Blockquote>

Die maximale Anzahl von Argumenten wird durch die maximale Dimension eines Java-Arrays begrenzt, wie durch <cite>The Java&trade definiert; Vm-Spezifikation</cite>. Wenn der Argumentindex nicht einem verfügbaren Argument entspricht, wird ein MissingFormatArgumentException ausgelöst.

Wenn mehr Argumente als Formatbezeichner vorhanden sind, werden die zusätzlichen Argumente ignoriert.

Sofern nicht anders angegeben, führt das Übergeben eines null Arguments an eine beliebige Methode oder einen Konstruktor in dieser Klasse dazu, dass ein NullPointerException ausgelöst wird.

Hinzugefügt in 1.5.

Java-Dokumentation für java.util.Formatter.

Teile dieser Seite sind Änderungen, die auf Arbeiten basieren, die vom Android Open Source Project erstellt und freigegeben wurden und gemäß den In der Attribution License beschriebenen Begriffen verwendet werden.

Konstruktoren

Formatter()

Erstellt einen neuen Formatierer.

Formatter(File)

Erstellt einen neuen Formatierer mit der angegebenen Datei.

Formatter(File, Charset, Locale)

Erstellt einen neuen Formatierer mit der angegebenen Datei, dem angegebenen Zeichensatz und dem angegebenen Gebietsschema.

Formatter(File, String)

Erstellt einen neuen Formatierer mit der angegebenen Datei und dem angegebenen Zeichensatz.

Formatter(File, String, Locale)

Erstellt einen neuen Formatierer mit der angegebenen Datei, dem angegebenen Zeichensatz und dem angegebenen Gebietsschema.

Formatter(IAppendable)

Erstellt einen neuen Formatierer mit dem angegebenen Ziel.

Formatter(IAppendable, Locale)

Erstellt einen neuen Formatierer mit dem angegebenen Ziel und Gebietsschema.

Formatter(Locale)

Erstellt einen neuen Formatierer mit dem angegebenen Gebietsschema.

Formatter(PrintStream)

Erstellt einen neuen Formatierer mit dem angegebenen Druckdatenstrom.

Formatter(Stream)

Erstellt einen neuen Formatierer mit dem angegebenen Ausgabedatenstrom.

Formatter(Stream, Charset, Locale)

Erstellt einen neuen Formatierer mit dem angegebenen Ausgabestream, dem angegebenen Zeichensatz und dem angegebenen Gebietsschema.

Formatter(Stream, String)

Erstellt einen neuen Formatierer mit dem angegebenen Ausgabedatenstrom und dem angegebenen Zeichensatz.

Formatter(Stream, String, Locale)

Erstellt einen neuen Formatierer mit dem angegebenen Ausgabestream, dem angegebenen Zeichensatz und dem angegebenen Gebietsschema.

Formatter(String)

Erstellt einen neuen Formatierer mit dem angegebenen Dateinamen.

Formatter(String, Charset, Locale)

Erstellt einen neuen Formatierer mit dem angegebenen Dateinamen, dem angegebenen Zeichensatz und dem angegebenen Gebietsschema.

Formatter(String, String)

Erstellt einen neuen Formatierer mit dem angegebenen Dateinamen und dem angegebenen Zeichensatz.

Formatter(String, String, Locale)

Erstellt einen neuen Formatierer mit dem angegebenen Dateinamen, dem angegebenen Zeichensatz und dem angegebenen Gebietsschema.

Eigenschaften

Class

Gibt die Laufzeitklasse dieses Objectzurück.

(Geerbt von Object)
Handle

Das Handle zum zugrunde liegenden Android-instance.

(Geerbt von Object)
JniIdentityHashCode

Ein Interpreter für Formatzeichenfolgen im Printf-Stil.

(Geerbt von Object)
JniPeerMembers

Ein Interpreter für Formatzeichenfolgen im Printf-Stil.

PeerReference

Ein Interpreter für Formatzeichenfolgen im Printf-Stil.

(Geerbt von Object)
ThresholdClass

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

(Geerbt von Object)
ThresholdType

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

(Geerbt von Object)

Methoden

Clone()

Erstellt und gibt eine Kopie dieses Objekts zurück.

(Geerbt von Object)
Close()

Schließt diesen Formatierer.

Dispose()

Ein Interpreter für Formatzeichenfolgen im Printf-Stil.

(Geerbt von Object)
Dispose(Boolean)

Ein Interpreter für Formatzeichenfolgen im Printf-Stil.

(Geerbt von Object)
Equals(Object)

Gibt an, ob ein anderes Objekt diesem "gleich" ist.

(Geerbt von Object)
Flush()

Leert diesen Formatierer.

Format(Locale, String, Object[])

Schreibt eine formatierte Zeichenfolge unter Verwendung der angegebenen Formatzeichenfolge und -argumente in das Ziel dieses Objekts.

Format(String, Object[])

Schreibt eine formatierte Zeichenfolge unter Verwendung der angegebenen Formatzeichenfolge und -argumente in das Ziel dieses Objekts.

GetHashCode()

Gibt einen Hashcodewert für das Objekt zurück.

(Geerbt von Object)
IoException()

Gibt das IOException letzte von diesem Formatierungsprogramm Appendableausgelöste zurück.

JavaFinalize()

Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection feststellt, dass keine Verweise mehr auf das Objekt vorhanden sind.

(Geerbt von Object)
Locale()

Gibt das Gebietsschema zurück, das durch die Konstruktion dieses Formatierungsprogramms festgelegt wurde.

Notify()

Aktiviert einen einzelnen Thread, der auf dem Monitor dieses Objekts wartet.

(Geerbt von Object)
NotifyAll()

Aktiviert alle Threads, die auf dem Monitor dieses Objekts warten.

(Geerbt von Object)
Out()

Gibt das Ziel für die Ausgabe zurück.

SetHandle(IntPtr, JniHandleOwnership)

Legt die Handle-Eigenschaft fest.

(Geerbt von Object)
ToArray<T>()

Ein Interpreter für Formatzeichenfolgen im Printf-Stil.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolgendarstellung des Objekts zurück.

(Geerbt von Object)
UnregisterFromRuntime()

Ein Interpreter für Formatzeichenfolgen im Printf-Stil.

(Geerbt von Object)
Wait()

Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert wird, in der Regel durch em benachrichtigen/em> oder <em>interrupted</em>.<><

(Geerbt von Object)
Wait(Int64)

Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert wird, in der Regel, indem <er>benachrichtigt</em> oder <em>interrupted</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)
Wait(Int64, Int32)

Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert wird, in der Regel, indem <er>benachrichtigt</em> oder <em>interrupted</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

IJavaPeerable.Disposed()

Ein Interpreter für Formatzeichenfolgen im Printf-Stil.

(Geerbt von Object)
IJavaPeerable.DisposeUnlessReferenced()

Ein Interpreter für Formatzeichenfolgen im Printf-Stil.

(Geerbt von Object)
IJavaPeerable.Finalized()

Ein Interpreter für Formatzeichenfolgen im Printf-Stil.

(Geerbt von Object)
IJavaPeerable.JniManagedPeerState

Ein Interpreter für Formatzeichenfolgen im Printf-Stil.

(Geerbt von Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Ein Interpreter für Formatzeichenfolgen im Printf-Stil.

(Geerbt von Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Ein Interpreter für Formatzeichenfolgen im Printf-Stil.

(Geerbt von Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Ein Interpreter für Formatzeichenfolgen im Printf-Stil.

(Geerbt von Object)

Erweiterungsmethoden

JavaCast<TResult>(IJavaObject)

Führt eine Für Android-Runtime überprüfte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

Ein Interpreter für Formatzeichenfolgen im Printf-Stil.

GetJniTypeName(IJavaPeerable)

Ein Interpreter für Formatzeichenfolgen im Printf-Stil.

FlushAsync(IFlushable)

Ein Interpreter für Formatzeichenfolgen im Printf-Stil.

Gilt für: