DateIntervalFormat Classe

Definizione

DateIntervalFormat è una classe per la formattazione e l'analisi degli intervalli di data in modo indipendente dalla lingua.

[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
Ereditarietà
DateIntervalFormat
Attributi

Commenti

DateIntervalFormat è una classe per la formattazione e l'analisi degli intervalli di data in modo indipendente dalla lingua. È supportata solo la formattazione. L'analisi non è supportata.

Intervallo di date indica da una data a un'altra, ad esempio da "Jan 11, 2008" a "Jan 18, 2008". È stata introdotta la classe DateInterval per rappresentarla. DateInterval è una coppia di UDate, ovvero i millisecondi standard dalle 24:00 GMT, 1 gennaio 1970.

DateIntervalFormat formatta un oggetto DateInterval in testo il più compatto possibile. Ad esempio, il formato dell'intervallo di date compreso tra "11 gennaio 2008" e "18 gennaio". 2008" è "11-18 gennaio 2008" per l'inglese. Analizza il testo in DateInterval, anche se inizialmente l'analisi non è supportata.

Non esistono informazioni strutturali nei modelli di data e ora. Per eventuali segni di punteggiatura e valori letterali stringa all'interno di un criterio di data e ora, non sappiamo se si tratta solo di un separatore, di un prefisso o di un suffisso. Senza tali informazioni, pertanto, è difficile generare un modello secondario (o super pattern) per algoritmo. Pertanto, la formattazione di un valore DateInterval è basata su criteri. È molto simile alla formattazione in SimpleDateFormat. Viene introdotta la classe DateIntervalInfo per salvare i modelli di intervallo di data, in modo simile al modello di data e ora in SimpleDateFormat.

Logicamente, i modelli di intervallo sono mapping da (scheletro, the_largest_different_calendar_field) a (date_interval_pattern).

Uno scheletro <ol><li> mantiene solo la lettera di motivo campo e ignora tutte le altre parti in un modello, ad esempio spazio, punteggiatura e valori letterali stringa. <li> nasconde l'ordine dei campi. <li> potrebbe nascondere la lunghezza della lettera del modello di un campo.

Per i campi di calendario non di cifre, la lunghezza della lettera di modello è importante, ad esempio MMM, MMMM e MMMMM; EEE e EEEE e viene rispettata la lunghezza della lettera di motivo del campo.

Per i campi del calendario delle cifre, ad esempio M o MM, d o dd, yy o aa, la lunghezza del criterio di campo viene ignorata e la corrispondenza migliore, definita nei modelli di data e ora, verrà restituita senza rispettare la lunghezza della lettera del criterio di campo nello scheletro. </ol>

I campi del calendario supportati per la formattazione dell'intervallo sono: anno, mese, data, giorno della settimana, am-pm, ora, ora, ora del giorno, minuto e secondo (anche se attualmente non sono disponibili dati intervalFormat specifici per gli scheletri con secondi). Tali campi di calendario possono essere definiti nell'ordine seguente: anno > month > date > ora (in giorno) > minute > secondo

I campi di calendario più grandi tra 2 calendari sono il primo campo calendario diverso nell'ordine precedente.

Ad esempio, i campi di calendario più grandi tra "10 gennaio 2007" e "Febbraio 20, 2008" sono anno.

Per altri campi del calendario, la formattazione dell'intervallo compatto non è supportata. E il formato intervallo verrà eseguito il fallback ai modelli di fallback, che è principalmente "{date0} - {date1}".

Esiste un set di stringhe di scheletro statico predefinite in DateFormat. Esistono modelli di intervallo predefiniti per tali scheletri predefiniti nei file di risorse delle impostazioni locali. Ad esempio, per uno scheletro YEAR_ABBR_MONTH_DAY, che è "yMMMd", in en_US, se il campo di calendario più grande tra date1 e date2 è "year", il modello di intervallo di date è "MMM d, aaaa - MMM d, a", ad esempio "Jan 10, 2007 - Jan 10, 2008". Se il campo di calendario più grande tra date1 e date2 è "month", il modello di intervallo di date è "MMM d - MMM d, aaaa", ad esempio "Jan 10 - Feb 10, 2007". Se il campo di calendario più grande tra date1 e date2 è "day", il modello di intervallo di date è ""MMM d-d, aaaaa", ad esempio "10-20 gennaio 2007".

Per lo scheletro di data, i modelli di intervallo in cui anno o mese o data sono diversi sono definiti nei file di risorse. Per lo scheletro di tempo, i modelli di intervallo in cui am/pm o ora o ora sono diversi sono definiti nei file di risorse.

Se uno scheletro non viene trovato in DateIntervalInfo delle impostazioni locali, il che significa che i modelli di intervallo per lo scheletro non sono definiti nel file di risorse, il modello di intervallo tornerà al modello di "fallback" dell'intervallo definito nel file di risorse. Se l'intervallo "fallback" non è definito, il fallback predefinito è "{date0} - {data1}".

Per la combinazione di data e ora, La regola per i modelli di intervallo genearte sono: <ol><li> quando l'anno, il mese o il giorno differisce, fallback al modello di intervallo di fallback, che è principalmente la concatenazione delle due espressioni originali con un separatore tra, ad esempio, il modello di intervallo da "10 gennaio 2007 10:10" a "11 gennaio 2007 10:10" è "Jan 10, 2007 10:10 - 11 gennaio 2007 10:10" <li> in caso contrario, presentare la data seguita dall'espressione intervallo per l'ora. Ad esempio, il modello di intervallo da "Jan 10, 2007 10:10 am" a "Jan 10, 2007 11:10am" è "Jan 10, 2007 10:10 am - 11:10am" </ol>

Se due date sono uguali, il modello di intervallo è il modello a data singola. Ad esempio, il criterio di intervallo compreso tra "10 gennaio 2007" e "10 gennaio 2007" è "10 gennaio 2007".

Oppure se i campi che presentano tra 2 date hanno esattamente gli stessi valori, il modello di intervallo è il modello di data singolo. Ad esempio, se l'utente richiede solo anno e mese, il modello di intervallo compreso tra "Jan 10, 2007" e "Jan 20, 2007" è "Jan 2007".

DateIntervalFormat richiede le informazioni seguenti per la formattazione corretta: fuso orario, tipo di calendario, motivo, simboli di formato data e modelli di intervallo di date. Può essere creata un'istanza in diversi modi: <ol><li> crea un'istanza usando le impostazioni locali predefinite o specificate più la struttura specificata. Gli utenti sono invitati a creare il formattatore dell'intervallo di date in questo modo e a usare le macro di struttura predefinite, ad esempio YEAR_NUM_MONTH, che è costituito dai campi del calendario e dallo stile del formato. </li><crea> un'istanza usando impostazioni locali predefinite o specificate più uno scheletro specificato più un dato DateIntervalInfo. Questo metodo factory è destinato a utenti potenti che vogliono fornire modelli di intervallo personalizzati. Le impostazioni locali forniscono informazioni sui simboli di fuso orario, calendario e formato. Lo scheletro più locale fornisce informazioni complete sul modello. DateIntervalInfo fornisce i modelli di intervallo di date. </li></ol>

Per la lettera del modello di campo del calendario, ad esempio G, y, M, d, a, h, H, m, s e così via. DateIntervalFormat usa la stessa sintassi del formato DateTime.

Esempio di codice: utilizzo generale

// 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());

Esempio di codice: per utenti potenti che vogliono usare il proprio modello di intervallo

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>Synchronization</h3>

I metodi di formato di DateIntervalFormat possono essere usati simultaneamente da più thread. Le funzioni che modificano lo stato di un oggetto DateIntervalFormat (setter) non possono essere usate simultaneamente con altre funzioni.

per android.icu.text.DateIntervalFormat.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Costruttori

Nome Descrizione
DateIntervalFormat(IntPtr, JniHandleOwnership)

DateIntervalFormat è una classe per la formattazione e l'analisi degli intervalli di data in modo indipendente dalla lingua.

Proprietà

Nome Descrizione
Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
DateFormat

Ottiene il formattatore di data

DateIntervalInfo

Ottiene i modelli di intervallo di data e ora. - oppure - Impostare i modelli di intervallo di data e ora.

Handle

Handle per l'istanza di Android sottostante.

(Ereditato da Object)
JniIdentityHashCode

Ottiene il codice hash di identità assegnato a questo Java peer dal runtime di interoperabilità.

(Ereditato da Object)
JniPeerMembers

DateIntervalFormat è una classe per la formattazione e l'analisi degli intervalli di data in modo indipendente dalla lingua.

PeerReference

Ottiene il riferimento all'oggetto JNI per questo peer Java.

(Ereditato da Object)
ThresholdClass

DateIntervalFormat è una classe per la formattazione e l'analisi degli intervalli di data in modo indipendente dalla lingua.

ThresholdType

DateIntervalFormat è una classe per la formattazione e l'analisi degli intervalli di data in modo indipendente dalla lingua.

TimeZone

Ottiene timezone oppure impostare il fuso orario per il calendario utilizzato da questo oggetto DateIntervalFormat.

Metodi

Nome Descrizione
Clone()

Crea e restituisce una copia di questo oggetto.

(Ereditato da _Format)
Dispose()

Rilascia le risorse contenute in questo peer Java.

(Ereditato da Object)
Dispose(Boolean)

Rilascia le risorse contenute in questo peer Java.

(Ereditato da Object)
Equals(Object)

Indica se un altro oggetto è "uguale a" questo.

(Ereditato da Object)
Format(Calendar, Calendar, StringBuffer, FieldPosition)

Formattare 2 Calendari per produrre una stringa.

Format(DateInterval, StringBuffer, FieldPosition)

Formattare un valore DateInterval per produrre una stringa.

Format(Object, StringBuffer, FieldPosition)

Formattare un oggetto per produrre una stringa.

Format(Object)

Formatta un oggetto per produrre una stringa.

(Ereditato da _Format)
FormatToCharacterIterator(Object)

Formatta un oggetto che produce un oggetto AttributedCharacterIterator.

(Ereditato da _Format)
FormatToValue(Calendar, Calendar)

DateIntervalFormat è una classe per la formattazione e l'analisi degli intervalli di data in modo indipendente dalla lingua.

FormatToValue(DateInterval)

DateIntervalFormat è una classe per la formattazione e l'analisi degli intervalli di data in modo indipendente dalla lingua.

GetContext(DisplayContext+Type)

DateIntervalFormat è una classe per la formattazione e l'analisi degli intervalli di data in modo indipendente dalla lingua.

GetHashCode()

Restituisce un valore di codice hash per l'oggetto .

(Ereditato da Object)
GetInstance(String, DateIntervalInfo)

Costruisci un oggetto DateIntervalFormat dalla struttura DateIntervalInfo e dalle impostazioni locali predefinite FORMAT .

GetInstance(String, Locale, DateIntervalInfo)

Costruisci un oggetto DateIntervalFormat dalla struttura di dateIntervalInfo e dalle impostazioni locali specificate.

GetInstance(String, Locale)

Costruire un oggetto DateIntervalFormat dalla struttura e dalle impostazioni locali specificate.

GetInstance(String, ULocale, DateIntervalInfo)

Costruisci un oggetto DateIntervalFormat dalla struttura di dateIntervalInfo e dalle impostazioni locali specificate.

GetInstance(String, ULocale)

Costruire un oggetto DateIntervalFormat dalla struttura e dalle impostazioni locali specificate.

GetInstance(String)

Costruisci un oggetto DateIntervalFormat dalla struttura e dalle impostazioni locali predefinite FORMAT .

JavaFinalize()

Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto .

(Ereditato da Object)
Notify()

Riattiva un singolo thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
NotifyAll()

Riattiva tutti i thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
ParseObject(String, ParsePosition)
Obsoleti.

L'analisi dell'intervallo di date non è supportata.

ParseObject(String)

Analizza il testo dall'inizio della stringa specificata per produrre un oggetto .

(Ereditato da _Format)
SetContext(DisplayContext)

<strong>[icu]</strong> Impostare un valore DisplayContext specifico nel formattatore, ad esempio CAPITALIZATION_FOR_STANDALONE.

SetHandle(IntPtr, JniHandleOwnership)

Imposta la proprietà Handle.

(Ereditato da Object)
ToArray<T>()

Crea una matrice gestita da questo wrapper di matrice Java.

(Ereditato da Object)
ToString()

Restituisce una rappresentazione di stringa dell'oggetto .

(Ereditato da Object)
UnregisterFromRuntime()

Annulla la registrazione di questo Java peer dal runtime di interoperabilità.

(Ereditato da Object)
Wait()

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo <>una notifica</em> o <em>interrotto</em>.

(Ereditato da Object)
Wait(Int64, Int32)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)
Wait(Int64)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

Nome Descrizione
IJavaPeerable.Disposed()

Notifica al runtime di interoperabilità che il peer gestito è stato eliminato.

(Ereditato da Object)
IJavaPeerable.DisposeUnlessReferenced()

Rilascia questo Java peer a meno che non venga conservato da un altro riferimento gestito.

(Ereditato da Object)
IJavaPeerable.Finalized()

Notifica al runtime di interoperabilità che il peer gestito è stato finalizzato.

(Ereditato da Object)
IJavaPeerable.JniManagedPeerState

Ottiene lo stato che descrive la relazione tra questo peer gestito e il relativo riferimento JNI.

(Ereditato da Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Imposta il codice hash dell'identità di interoperabilità per questo Java peer.

(Ereditato da Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Imposta lo stato peer gestito e JNI per questo peer Java.

(Ereditato da Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Imposta il riferimento all'oggetto JNI usato da questo peer gestito.

(Ereditato da Object)

Metodi di estensione

Nome Descrizione
GetJniTypeName(IJavaPeerable)

Ottiene il nome JNI del tipo dell'istanza selfdi .

JavaAs<TResult>(IJavaPeerable)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

JavaCast<TResult>(IJavaObject)

Esegue una conversione del tipo di tipo controllato dal runtime Android.

JavaCast<TResult>(IJavaObject)

DateIntervalFormat è una classe per la formattazione e l'analisi degli intervalli di data in modo indipendente dalla lingua.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

Si applica a