DateIntervalFormat Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
DateIntervalFormat ist eine Klasse zum Formatieren und Analysieren von Datumsintervallen auf sprachunabhängige Weise.
[Android.Runtime.Register("android/icu/text/DateIntervalFormat", ApiSince=24, DoNotGenerateAcw=true)]
public class DateIntervalFormat : Android.Icu.Text.UFormat
[<Android.Runtime.Register("android/icu/text/DateIntervalFormat", ApiSince=24, DoNotGenerateAcw=true)>]
type DateIntervalFormat = class
inherit UFormat
- Vererbung
- Attribute
Hinweise
DateIntervalFormat ist eine Klasse zum Formatieren und Analysieren von Datumsintervallen auf sprachunabhängige Weise. Nur Formatierung wird unterstützt. Die Analyse wird nicht unterstützt.
Datumsintervall bedeutet von einem Datum zu einem anderen Datum, z. B. von "11. Januar 2008" bis "18. Januar 2008". Wir haben die Klasse DateInterval eingeführt, um sie darzustellen. DateInterval ist ein Paar von UDate, das seit 24:00 GMT, dem 1. Januar 1970, die Standard millisekunden ist.
DateIntervalFormat formatiert einen DateInterval so kompakt wie möglich in Text. Beispielsweise das Datumsintervallformat von "11. Januar 2008" bis "18. Januar". 2008" ist "Jan 11-18, 2008" für Englisch. Und es analysiert Text in DateInterval, obwohl anfänglich die Analyse nicht unterstützt wird.
Es gibt keine strukturellen Informationen in Datums-/Uhrzeitmustern. Bei Interpunktions- und Zeichenfolgenliteralen innerhalb eines Datumszeitmusters wissen wir nicht, ob es sich nur um ein Trennzeichen oder ein Präfix oder um ein Suffix handelt. Ohne solche Informationen ist es also schwierig, ein Untermuster (oder Supermuster) anhand eines Algorithmus zu generieren. Das Formatieren eines DateInterval-Vorgangs ist also mustergesteuert. Es ist sehr ähnlich wie die Formatierung in SimpleDateFormat. Wir stellen die Klasse DateIntervalInfo zum Speichern von Datumsintervallmustern vor, ähnlich dem Datums-Uhrzeitmuster in SimpleDateFormat.
Logisch sind die Intervallmuster Zuordnungen von (Skelett, the_largest_different_calendar_field) zu (date_interval_pattern).
Ein Skelett <ol><li> behält nur den Feldmusterbuchstaben bei und ignoriert alle anderen Teile in einem Muster, z. B. Leerzeichen, Interpunktionszeichen und Zeichenfolgenliterale. <li> blendet die Reihenfolge von Feldern aus. <li> blendet möglicherweise die Länge des Musterbuchstabens eines Felds aus.
Bei diesen nicht ziffernfreien Kalenderfeldern ist die Länge des Musterbuchstabens wichtig, z. B. MMM, MMMM und MMMMM; EEE und EEEE und die Länge des Musterbuchstabens des Felds werden berücksichtigt.
Für die Ziffernkalenderfelder, z. B. M oder MM, d oder tt, jjjj oder jjjj, wird die Feldmusterlänge ignoriert, und die beste Übereinstimmung, die in Datumszeitmustern definiert ist, wird zurückgegeben, ohne die Länge des Feldmusters im Skelett zu berücksichtigen. </ol>
Die für die Intervallformatierung unterstützten Kalenderfelder sind: Jahr, Monat, Datum, Wochentag, am-pm, Stunde, Stunde, Minute und Sekunde (obwohl derzeit keine spezifischen IntervalFormat-Daten für Skelette mit Sekunden vorhanden sind). Diese Kalenderfelder können in der folgenden Reihenfolge definiert werden: Jahr > Monat > Datum > Stunde (in Tag) > Minute > Sekunde
Die größten unterschiedlichen Kalenderfelder zwischen 2 Kalendern sind das erste unterschiedliche Kalenderfeld in der obigen Reihenfolge.
Beispiel: Die größten verschiedenen Kalenderfelder zwischen "10. Januar 2007" und "20. Februar 2008" sind Jahr.
Bei anderen Kalenderfeldern wird die kompakte Intervallformatierung nicht unterstützt. Und das Intervallformat wird auf Fallbackmuster zurückfallen, was hauptsächlich "{date0} - {date1}" ist.
Es gibt eine Reihe vordefinierter statischer Skelettzeichenfolgen in DateFormat, Es gibt vordefinierte Intervallmuster für diese vordefinierten Skelette in gebietsschemas-Ressourcendateien. Wenn z. B. für ein Skelett YEAR_ABBR_MONTH_DAY ,yMMMd" in en_US, wenn das größte unterschiedliche Kalenderfeld zwischen Datum1 und Datum2 "Jahr" lautet, lautet das Datumsintervallmuster "MMM d, yyyy - MMM d, yy", wie z. B. "10. Januar 2007 - 10. Januar 2008". Wenn das größte unterschiedliche Kalenderfeld zwischen Datum1 und Datum2 "Monat" lautet, lautet das Datumsintervallmuster "MMM d - MMM d, jjjj", z. B. "10. Januar - 10. Februar 2007". Wenn das größte unterschiedliche Kalenderfeld zwischen Datum1 und Datum2 "Tag" lautet, lautet das Datumsintervallmuster ""MMM d-d, jjjj", z. B. "10.-20. Januar 2007".
Bei Datumsskelett sind die Intervallmuster, wenn Jahr oder Monat oder Datum unterschiedlich sind, in Ressourcendateien definiert. Bei Zeitskelett werden die Intervallmuster, wenn am/pm, oder Stunde oder Minute unterschiedlich sind, in Ressourcendateien definiert.
Wenn eine Skelett nicht in der DateIntervalInfo eines Gebietsschemas gefunden wird, was bedeutet, dass die Intervallmuster für das Skelett nicht in der Ressourcendatei definiert sind, wird das Intervallmuster auf das in der Ressourcendatei definierte Intervallmuster "Fallback" zurückfallen. Wenn das Intervallmuster "Fallback" nicht definiert ist, lautet der Standard-Fallback "{date0} - {data1}".
Für die Kombination aus Datum und Uhrzeit, Die Regel zu Genarte-Intervallmustern sind: <ol><li> , wenn sich das Jahr, der Monat oder der Tag unterscheidet, fällt auf das Fallbackintervallmuster zurück, was hauptsächlich das Verketten der beiden ursprünglichen Ausdrücke mit einem Trennzeichen zwischen, z. B. Intervallmuster von "10. Januar 2007 10:10 Uhr" auf "11. Januar 2007 10:10Am" lautet "Jan 10, 2007 10:10 - 11. Januar 2007 10:10" <li> andernfalls das Datum, gefolgt vom Bereichsausdruck für die Uhrzeit. Beispiel: Intervallmuster von "10. Januar 2007 10:10 Uhr" bis "10. Januar 2007 11:10" lautet "10. Januar 2007 10:10 - 11:10 Uhr" </ol>
Wenn zwei Datumsangaben identisch sind, ist das Intervallmuster das einzelne Datumsmuster. Beispielsweise lautet das Intervallmuster von "10. Januar 2007" bis "10. Januar 2007" "10. Januar 2007".
Oder wenn die Präsentationsfelder zwischen zwei Datumsangaben genau dieselben Werte aufweisen, ist das Intervallmuster das einzelne Datumsmuster. Wenn der Benutzer beispielsweise nur Jahr und Monat anfordert, lautet das Intervallmuster von "10. Januar 2007" bis "20. Januar 2007" "Jan 2007".
DateIntervalFormat benötigt die folgenden Informationen für die richtige Formatierung: Zeitzone, Kalendertyp, Muster, Datumsformatsymbole und Datumsintervallmuster. Es kann auf verschiedene Arten instanziiert werden: <ol><li> erstellen eine Instanz mithilfe des Standard- oder bestimmten Gebietsschemas plus gegebener Skelett. Benutzer werden ermutigt, auf diese Weise datumsintervallformatierer zu erstellen und die vordefinierten Skelettmakros zu verwenden, z. B. YEAR_NUM_MONTH, die aus den Kalenderfeldern und der Formatvorlage besteht. </li li><> erstellt eine Instanz mithilfe des Standardgebietsschemas oder des angegebenen Gebietsschemas plus einer bestimmten DateIntervalInfo. Diese Factorymethode richtet sich an leistungsstarke Benutzer, die ihre eigenen Intervallmuster bereitstellen möchten. Das Gebietsschema enthält Informationen zu Zeitzonen, Kalendern und Formatsymbolen. Lokale Plus-Skelett enthält vollständige Musterinformationen. DateIntervalInfo stellt die Datumsintervallmuster bereit. </li></ol>
Für den Kalenderfeldmusterbuchstaben, z. B. G, y, M, d, a, h, H, m, s usw. DateIntervalFormat verwendet dieselbe Syntax wie das des DateTime-Formats.
Codebeispiel: allgemeine Verwendung
// the date interval object which the DateIntervalFormat formats on
// and parses into
DateInterval dtInterval = new DateInterval(1000*3600*24L, 1000*3600*24*2L);
DateIntervalFormat dtIntervalFmt = DateIntervalFormat.getInstance(
DateFormat.YEAR_MONTH_DAY, new Locale("en", "GB", ""));
StringBuffer result = new StringBuffer("");
FieldPosition pos = new FieldPosition(-1);
// formatting
dtIntervalFmt.format(dtInterval, result, pos);
assertEquals("interval", "1–2 January 1970", result.toString());
Codebeispiel: für leistungsstarke Benutzer, die ihr eigenes Intervallmuster verwenden möchten
import android.icu.text.DateIntervalInfo;
import android.icu.text.DateIntervalFormat;
....................
// Get DateIntervalFormat instance using default locale
DateIntervalFormat dtitvfmt = DateIntervalFormat.getInstance(YEAR_MONTH_DAY);
// Create an empty DateIntervalInfo object, which does not have any interval patterns inside.
dtitvinf = new DateIntervalInfo();
// a series of set interval patterns.
// Only ERA, YEAR, MONTH, DATE, DAY_OF_MONTH, DAY_OF_WEEK, AM_PM, HOUR, HOUR_OF_DAY,
MINUTE, SECOND and MILLISECOND are supported.
dtitvinf.setIntervalPattern("yMMMd", Calendar.YEAR, "'y ~ y'");
dtitvinf.setIntervalPattern("yMMMd", Calendar.MONTH, "yyyy 'diff' MMM d - MMM d");
dtitvinf.setIntervalPattern("yMMMd", Calendar.DATE, "yyyy MMM d ~ d");
dtitvinf.setIntervalPattern("yMMMd", Calendar.HOUR_OF_DAY, "yyyy MMM d HH:mm ~ HH:mm");
// Set fallback interval pattern. Fallback pattern is used when interval pattern is not found.
// If the fall-back pattern is not set, falls back to {date0} - {date1} if interval pattern is not found.
dtitvinf.setFallbackIntervalPattern("{0} - {1}");
// Set above DateIntervalInfo object as the interval patterns of date interval formatter
dtitvfmt.setDateIntervalInfo(dtitvinf);
// Prepare to format
pos = new FieldPosition(0);
str = new StringBuffer("");
// The 2 calendars should be equivalent, otherwise, IllegalArgumentException will be thrown by format()
Calendar fromCalendar = (Calendar) dtfmt.getCalendar().clone();
Calendar toCalendar = (Calendar) dtfmt.getCalendar().clone();
fromCalendar.setTimeInMillis(....);
toCalendar.setTimeInMillis(...);
//Formatting given 2 calendars
dtitvfmt.format(fromCalendar, toCalendar, str, pos);
<h3-Synchronisierung></h3>
Die Formatmethoden von DateIntervalFormat können gleichzeitig aus mehreren Threads verwendet werden. Funktionen, die den Status eines DateIntervalFormat -Objekts (Setter) ändern, können nicht gleichzeitig mit anderen Funktionen verwendet werden.
Java-Dokumentation für android.icu.text.DateIntervalFormat.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.
Konstruktoren
| Name | Beschreibung |
|---|---|
| DateIntervalFormat(IntPtr, JniHandleOwnership) |
DateIntervalFormat ist eine Klasse zum Formatieren und Analysieren von Datumsintervallen auf sprachunabhängige Weise. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Class |
Gibt die Laufzeitklasse dieses Werts |
| DateFormat |
Ruft den Datumsformatierer ab. |
| DateIntervalInfo |
Ruft die Datumszeitintervallmuster ab. -oder- Legen Sie die Datumszeitintervallmuster fest. |
| Handle |
Das Handle für die zugrunde liegende Android-Instanz. (Geerbt von Object) |
| JniIdentityHashCode |
Ruft den Identitätshashcode ab, der diesem Java Peer von der Interop-Laufzeit zugewiesen ist. (Geerbt von Object) |
| JniManagedPeerState |
DateIntervalFormat ist eine Klasse zum Formatieren und Analysieren von Datumsintervallen auf sprachunabhängige Weise. (Geerbt von JavaObject) |
| JniPeerMembers |
DateIntervalFormat ist eine Klasse zum Formatieren und Analysieren von Datumsintervallen auf sprachunabhängige Weise. |
| PeerReference |
Ruft den JNI-Objektverweis für diesen Java Peer ab. (Geerbt von Object) |
| ThresholdClass |
DateIntervalFormat ist eine Klasse zum Formatieren und Analysieren von Datumsintervallen auf sprachunabhängige Weise. |
| ThresholdType |
DateIntervalFormat ist eine Klasse zum Formatieren und Analysieren von Datumsintervallen auf sprachunabhängige Weise. |
| TimeZone |
Rufen Sie die TimeZone -oder- Legen Sie die Zeitzone für den Kalender fest, der von diesem DateIntervalFormat -Objekt verwendet wird. |
Methoden
| Name | Beschreibung |
|---|---|
| Clone() |
Erstellt und gibt eine Kopie dieses Objekts zurück. (Geerbt von _Format) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
DateIntervalFormat ist eine Klasse zum Formatieren und Analysieren von Datumsintervallen auf sprachunabhängige Weise. (Geerbt von JavaObject) |
| Dispose() |
Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden. (Geerbt von Object) |
| Dispose(Boolean) |
Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden. (Geerbt von Object) |
| DisposeUnlessReferenced() |
DateIntervalFormat ist eine Klasse zum Formatieren und Analysieren von Datumsintervallen auf sprachunabhängige Weise. (Geerbt von JavaObject) |
| Equals(Object) |
DateIntervalFormat ist eine Klasse zum Formatieren und Analysieren von Datumsintervallen auf sprachunabhängige Weise. (Geerbt von JavaObject) |
| Equals(Object) |
Gibt an, ob ein anderes Objekt "gleich" diesem Objekt ist. (Geerbt von Object) |
| Format(Calendar, Calendar, StringBuffer, FieldPosition) |
Formatieren Sie 2 Kalender, um eine Zeichenfolge zu erzeugen. |
| Format(DateInterval, StringBuffer, FieldPosition) |
Formatieren Sie einen DateInterval, um eine Zeichenfolge zu erzeugen. |
| Format(Object, StringBuffer, FieldPosition) |
Formatieren Sie ein Objekt, um eine Zeichenfolge zu erzeugen. |
| Format(Object) |
Formatiert ein Objekt, um eine Zeichenfolge zu erzeugen. (Geerbt von _Format) |
| FormatToCharacterIterator(Object) |
Formatiert ein Objekt, das ein |
| FormatToValue(Calendar, Calendar) |
DateIntervalFormat ist eine Klasse zum Formatieren und Analysieren von Datumsintervallen auf sprachunabhängige Weise. |
| FormatToValue(DateInterval) |
DateIntervalFormat ist eine Klasse zum Formatieren und Analysieren von Datumsintervallen auf sprachunabhängige Weise. |
| GetContext(DisplayContext+Type) |
DateIntervalFormat ist eine Klasse zum Formatieren und Analysieren von Datumsintervallen auf sprachunabhängige Weise. |
| GetHashCode() |
Gibt einen Hashcodewert für das Objekt zurück. (Geerbt von Object) |
| GetInstance(String, DateIntervalInfo) |
Erstellen Sie ein DateIntervalFormat aus dem Skelett "DateIntervalInfo" und das Standardgebietsschema |
| GetInstance(String, Locale, DateIntervalInfo) |
Erstellen Sie ein DateIntervalFormat aus dem Skelett einer DateIntervalInfo und dem angegebenen Gebietsschema. |
| GetInstance(String, Locale) |
Erstellen Sie ein DateIntervalFormat aus Skelett und einem bestimmten Gebietsschema. |
| GetInstance(String, ULocale, DateIntervalInfo) |
Erstellen Sie ein DateIntervalFormat aus dem Skelett einer DateIntervalInfo und dem angegebenen Gebietsschema. |
| GetInstance(String, ULocale) |
Erstellen Sie ein DateIntervalFormat aus Skelett und einem bestimmten Gebietsschema. |
| GetInstance(String) |
Erstellen Sie ein DateIntervalFormat aus Skelett und dem Standardgebietsschema |
| JavaFinalize() |
Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection bestimmt, dass keine weiteren Verweise auf das Objekt vorhanden sind. (Geerbt von Object) |
| 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) |
| ParseObject(String, ParsePosition) |
Veraltet.
Die Datumsintervallanalyse wird nicht unterstützt. |
| ParseObject(String) |
Analysiert Text vom Anfang der angegebenen Zeichenfolge, um ein Objekt zu erzeugen. (Geerbt von _Format) |
| SetContext(DisplayContext) |
<strong>[icu]</strong> Legen Sie einen bestimmten DisplayContext-Wert im Formatierer fest, z. B. CAPITALIZATION_FOR_STANDALONE. |
| SetHandle(IntPtr, JniHandleOwnership) |
Legt die Handle-Eigenschaft fest. (Geerbt von Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
DateIntervalFormat ist eine Klasse zum Formatieren und Analysieren von Datumsintervallen auf sprachunabhängige Weise. (Geerbt von JavaObject) |
| ToArray<T>() |
Erstellt ein verwaltetes Array aus diesem Java Arraywrapper. (Geerbt von Object) |
| ToString() |
Gibt eine Zeichenfolgendarstellung des Objekts zurück. (Geerbt von Object) |
| UnregisterFromRuntime() |
Hebt die Registrierung dieses Java Peers aus der Interop-Laufzeit auf. (Geerbt von Object) |
| Wait() |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch em benachrichtigt/em< oder >em<unterbrochen>/em<.><> (Geerbt von Object) |
| Wait(Int64, Int32) |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
| Wait(Int64) |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| IJavaPeerable.Disposed() |
DateIntervalFormat ist eine Klasse zum Formatieren und Analysieren von Datumsintervallen auf sprachunabhängige Weise. (Geerbt von JavaObject) |
| IJavaPeerable.Finalized() |
DateIntervalFormat ist eine Klasse zum Formatieren und Analysieren von Datumsintervallen auf sprachunabhängige Weise. (Geerbt von JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
DateIntervalFormat ist eine Klasse zum Formatieren und Analysieren von Datumsintervallen auf sprachunabhängige Weise. (Geerbt von JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
DateIntervalFormat ist eine Klasse zum Formatieren und Analysieren von Datumsintervallen auf sprachunabhängige Weise. (Geerbt von JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
DateIntervalFormat ist eine Klasse zum Formatieren und Analysieren von Datumsintervallen auf sprachunabhängige Weise. (Geerbt von JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
DateIntervalFormat ist eine Klasse zum Formatieren und Analysieren von Datumsintervallen auf sprachunabhängige Weise. (Geerbt von JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
DateIntervalFormat ist eine Klasse zum Formatieren und Analysieren von Datumsintervallen auf sprachunabhängige Weise. (Geerbt von _Format) |
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Ruft den JNI-Namen des Typs der Instanz |
| JavaAs<TResult>(IJavaPeerable) |
Versuchen Sie, die Eingabe |
| JavaCast<TResult>(IJavaObject) |
Führt eine android-laufzeitgecheckte Typkonvertierung aus. |
| JavaCast<TResult>(IJavaObject) |
DateIntervalFormat ist eine Klasse zum Formatieren und Analysieren von Datumsintervallen auf sprachunabhängige Weise. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Versuchen Sie, die Eingabe |