Langue

DateIntervalFormat Classe

Définition

DateIntervalFormat est une classe pour la mise en forme et l’analyse des intervalles de date de manière indépendante du langage.

[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
Héritage
DateIntervalFormat
Attributs

Remarques

DateIntervalFormat est une classe pour la mise en forme et l’analyse des intervalles de date de manière indépendante du langage. Seule la mise en forme est prise en charge. L’analyse n’est pas prise en charge.

L’intervalle de date signifie d’une date à une autre date, par exemple, de « 11 janvier 2008 » à « 18 janvier 2008 ». Nous avons introduit la classe DateInterval pour la représenter. DateInterval est une paire d’UDate, qui est la milliseconde standard depuis 24:00 GMT, Jan 1, 1970.

DateIntervalFormat met en forme un Objet DateInterval en texte aussi compact que possible. Par exemple, le format d’intervalle de date du « 11 janvier 2008 » à « 18 janvier ». 2008 » est « 11-18 janvier 2008 » pour l’anglais. Et il analyse le texte dans DateInterval, bien que initialement, l’analyse n’est pas prise en charge.

Il n’existe aucune information structurelle dans les modèles d’heure de date. Pour les ponctuations et littéraux de chaîne à l’intérieur d’un modèle d’heure de date, nous ne savons pas s’il s’agit simplement d’un séparateur, d’un préfixe ou d’un suffixe. Sans ces informations, il est donc difficile de générer un sous-modèle (ou super-modèle) par algorithme. Par conséquent, la mise en forme d’une DateInterval est pilotée par des modèles. Il est très similaire à la mise en forme dans SimpleDateFormat. Nous présentons la classe DateIntervalInfo pour enregistrer les modèles d’intervalle de date, similaires au modèle d’heure de date dans SimpleDateFormat.

Logiquement, les modèles d’intervalle sont des mappages de (squelette, the_largest_different_calendar_field) à (date_interval_pattern).

Un squelette <ol><li> conserve uniquement la lettre de modèle de champ et ignore toutes les autres parties d’un modèle, telles que l’espace, les ponctuations et les littéraux de chaîne. <li> masque l’ordre des champs. <li> peut masquer la longueur de la lettre de motif d’un champ.

Pour ces champs de calendrier non numériques, la longueur de la lettre de modèle est importante, telle que MMM, MMMM et MMMMM ; L’EEE et l’EEEE, et la longueur de la lettre de motif du champ est respectée.

Pour les champs de calendrier de chiffres, tels que M ou MM, d ou dd, aaaa ou aaaa, la longueur du modèle de champ est ignorée et la meilleure correspondance, qui est définie dans les modèles d’heure de date, est retournée sans respecter la longueur de la lettre de modèle de champ dans le squelette. </ol>

Les champs de calendrier que nous prenons en charge pour la mise en forme d’intervalle sont : année, mois, date, jour de la semaine, am-pm, heure, heure de jour, minute et seconde (bien que nous n’avons pas actuellement de données intervalFormat spécifiques pour les squelettes avec secondes). Ces champs de calendrier peuvent être définis dans l’ordre suivant : année > mois > date > heure (en jour) > minute > seconde

Le plus grand nombre de champs de calendrier entre 2 calendriers est le premier champ de calendrier différent dans l’ordre ci-dessus.

Par exemple : les plus grands champs de calendrier entre « 10 janvier 2007 » et « 20 février 2008 » sont l’année.

Pour les autres champs de calendrier, la mise en forme d’intervalle compact n’est pas prise en charge. Et le format d’intervalle revient aux modèles de secours, qui est principalement « {date0} - {date1} ».

Il existe un ensemble de chaînes de squelette statiques prédéfinies dans DateFormat, il existe des modèles d’intervalle prédéfinis pour ces squelettes prédéfinis dans les fichiers de ressources des paramètres régionaux. Par exemple, pour un squelette YEAR_ABBR_MONTH_DAY, qui est « yMMMd », dans en_US, si le champ calendrier le plus important entre date1 et date2 est « year », le modèle d’intervalle de date est « MMM d, aaaa - MMM d, aaaa », par exemple « 10 janvier 2007 - 10 janvier 2008 ». Si le plus grand champ de calendrier différent entre date1 et date2 est « mois », le modèle d’intervalle de date est « MMM d - MMM d, aaaa », tel que « 10 janvier - 10 février 2007 ». Si le plus grand champ de calendrier différent entre date1 et date2 est « jour », le modèle d’intervalle de date est « « MMM d-d, aaaa », par exemple « 10-20 janvier 2007 ».

Pour le squelette de date, les modèles d’intervalle lorsque l’année ou le mois ou la date sont différents sont définis dans les fichiers de ressources. Pour le squelette du temps, les modèles d’intervalle lorsque am/pm, ou heure, ou minute sont différents sont définis dans les fichiers de ressources.

Si un squelette n’est pas trouvé dans dateIntervalInfo d’un paramètre régional, ce qui signifie que les modèles d’intervalle pour le squelette ne sont pas définis dans le fichier de ressources, le modèle d’intervalle revient au modèle d’intervalle « secours » défini dans le fichier de ressources. Si le modèle d’intervalle « secours » n’est pas défini, la secours par défaut est « {date0} - {data1} ».

Pour la combinaison de date et d’heure, La règle des modèles d’intervalle de genearte est : <ol><li> lorsque l’année, le mois ou le jour diffère, revient au modèle d’intervalle de secours, qui est principalement le concaténer les deux expressions d’origine avec un séparateur entre, par exemple, le modèle d’intervalle de « Jan 10, 2007 10:10 am » à « Jan 11, 2007 10:10am » est « Jan 10, 2007 10h10 - 11 janvier 2007 10h10" <li> sinon, présentez la date suivie de l’expression de plage pour l’heure. Par exemple, le modèle d’intervalle de « 10 janvier 2007 10:10 » à « 10 janvier 2007 11 h 10 » est « 10 janvier 2007 10:10 - 11:10 » </ol>

Si deux dates sont identiques, le modèle d’intervalle est le modèle de date unique. Par exemple, le modèle d’intervalle de « 10 janvier 2007 » à « 10 janvier 2007 » est « 10 janvier 2007 ».

Ou si les champs de présentation compris entre 2 dates ont exactement les mêmes valeurs, le modèle d’intervalle est le modèle de date unique. Par exemple, si l’utilisateur demande uniquement l’année et le mois, le modèle d’intervalle de « 10 janvier 2007 » à « 20 janvier 2007 » est « Jan 2007 ».

DateIntervalFormat a besoin des informations suivantes pour une mise en forme correcte : fuseau horaire, type de calendrier, modèle, symboles de format de date et modèles d’intervalle de date. Il peut être instancié de plusieurs façons : <ol><li> crée une instance à l’aide des paramètres régionaux par défaut ou des paramètres régionaux donnés plus un squelette donné. Les utilisateurs sont encouragés à créer un formateur d’intervalle de date de cette façon et à utiliser les macros squelettes prédéfinies, telles que YEAR_NUM_MONTH, qui se composent des champs de calendrier et du style de format. </li><li> crée une instance à l’aide de paramètres régionaux par défaut ou donnés plus un squelette donné ainsi qu’une dateIntervalInfo donnée. Cette méthode de fabrique est destinée aux utilisateurs puissants qui souhaitent fournir leurs propres modèles d’intervalle. Les paramètres régionaux fournissent les informations sur le fuseau horaire, le calendrier et le format des symboles. Le squelette plus local fournit des informations complètes sur les modèles. DateIntervalInfo fournit les modèles d’intervalle de date. </li></ol>

Pour la lettre de modèle de champ calendrier, telle que G, y, M, d, a, h, H, m, s, etc. DateIntervalFormat utilise la même syntaxe que celle du format DateTime.

Exemple de code : utilisation générale

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

Exemple de code : pour les utilisateurs puissants qui souhaitent utiliser leur propre modèle d’intervalle

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


<Synchronisation> h3</h3>

Les méthodes de format de DateIntervalFormat peuvent être utilisées simultanément à partir de plusieurs threads. Les fonctions qui modifient l’état d’un objet DateIntervalFormat (setters) peuvent ne pas être utilisées simultanément avec d’autres fonctions.

Java documentation pour android.icu.text.DateIntervalFormat.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

Constructeurs

Nom Description
DateIntervalFormat(IntPtr, JniHandleOwnership)

DateIntervalFormat est une classe pour la mise en forme et l’analyse des intervalles de date de manière indépendante du langage.

Propriétés

Nom Description
Class

Retourne la classe runtime de ce Object.

(Hérité de Object)
DateFormat

Obtient le formateur de date

DateIntervalInfo

Obtient les modèles d’intervalle d’heure de date. -ou- Définissez les modèles d’intervalle d’heure de date.

Handle

Handle de l’instance Android sous-jacente.

(Hérité de Object)
JniIdentityHashCode

Obtient le code de hachage d’identité affecté à cet homologue Java par le runtime d’interopérabilité.

(Hérité de Object)
JniManagedPeerState

DateIntervalFormat est une classe pour la mise en forme et l’analyse des intervalles de date de manière indépendante du langage.

(Hérité de JavaObject)
JniPeerMembers

DateIntervalFormat est une classe pour la mise en forme et l’analyse des intervalles de date de manière indépendante du langage.

PeerReference

Obtient la référence d’objet JNI pour cet homologue Java.

(Hérité de Object)
ThresholdClass

DateIntervalFormat est une classe pour la mise en forme et l’analyse des intervalles de date de manière indépendante du langage.

ThresholdType

DateIntervalFormat est une classe pour la mise en forme et l’analyse des intervalles de date de manière indépendante du langage.

TimeZone

Obtenez le fuseau horaire (ou définissez le fuseau horaire pour le calendrier utilisé par cet objet DateIntervalFormat).

Méthodes

Nom Description
Clone()

Crée et retourne une copie de cet objet.

(Hérité de _Format)
Construct(JniObjectReference, JniObjectReferenceOptions)

DateIntervalFormat est une classe pour la mise en forme et l’analyse des intervalles de date de manière indépendante du langage.

(Hérité de JavaObject)
Dispose()

Libère les ressources détenues par cet homologue Java.

(Hérité de Object)
Dispose(Boolean)

Libère les ressources détenues par cet homologue Java.

(Hérité de Object)
DisposeUnlessReferenced()

DateIntervalFormat est une classe pour la mise en forme et l’analyse des intervalles de date de manière indépendante du langage.

(Hérité de JavaObject)
Equals(Object)

DateIntervalFormat est une classe pour la mise en forme et l’analyse des intervalles de date de manière indépendante du langage.

(Hérité de JavaObject)
Equals(Object)

Indique si un autre objet est « égal à » celui-ci.

(Hérité de Object)
Format(Calendar, Calendar, StringBuffer, FieldPosition)

Format 2 Calendriers pour produire une chaîne.

Format(DateInterval, StringBuffer, FieldPosition)

Mettez en forme un Objet DateInterval pour produire une chaîne.

Format(ITemporal, ITemporal, StringBuffer, FieldPosition)

Mettez en forme deux Temporals pour produire une chaîne.

Format(Object, StringBuffer, FieldPosition)

Mettez en forme un objet pour produire une chaîne.

Format(Object)

Met en forme un objet pour produire une chaîne.

(Hérité de _Format)
FormatToCharacterIterator(Object)

Met en forme un objet produisant un AttributedCharacterIterator.

(Hérité de _Format)
FormatToValue(Calendar, Calendar)

Format 2 Calendriers pour produire un FormattedDateInterval.

FormatToValue(DateInterval)

Mettez en forme un DateInterval pour produire un FormattedDateInterval.

FormatToValue(ITemporal, ITemporal)

Mettez en forme deux temporals pour produire un FormattedDateInterval.

GetContext(DisplayContext+Type)

[icu] Obtenez la valeur DisplayContext du formateur pour le displayContext.Type spécifié, tel que CAPITALIZATION.

GetHashCode()

Retourne une valeur de code de hachage pour l’objet.

(Hérité de Object)
GetInstance(String, DateIntervalInfo)

Construisez une DateIntervalFormat à partir du squelette DateIntervalInfo et les paramètres régionaux par défaut FORMAT .

GetInstance(String, Locale, DateIntervalInfo)

Construisez un DateIntervalFormat à partir du squelette d’une DateIntervalInfo et des paramètres régionaux donnés.

GetInstance(String, Locale)

Construisez un DateIntervalFormat à partir du squelette et d’un paramètre régional donné.

GetInstance(String, ULocale, DateIntervalInfo)

Construisez un DateIntervalFormat à partir du squelette d’une DateIntervalInfo et des paramètres régionaux donnés.

GetInstance(String, ULocale)

Construisez un DateIntervalFormat à partir du squelette et d’un paramètre régional donné.

GetInstance(String)

Construisez un DateIntervalFormat à partir du squelette et des paramètres régionaux par défaut FORMAT .

JavaFinalize()
Obsolète.

Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet.

(Hérité de Object)
Notify()

Réveille un thread unique qui attend le moniteur de cet objet.

(Hérité de Object)
NotifyAll()

Réveille tous les threads qui attendent le moniteur de cet objet.

(Hérité de Object)
ParseObject(String, ParsePosition)
Obsolète.

L’analyse de l’intervalle de date n’est pas prise en charge.

ParseObject(String)

Analyse le texte à partir du début de la chaîne donnée pour produire un objet.

(Hérité de _Format)
SetContext(DisplayContext)

<strong>[icu]</strong> Définir une valeur DisplayContext particulière dans le formateur, par exemple CAPITALIZATION_FOR_STANDALONE.

SetHandle(IntPtr, JniHandleOwnership)

Définit la propriété Handle.

(Hérité de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

DateIntervalFormat est une classe pour la mise en forme et l’analyse des intervalles de date de manière indépendante du langage.

(Hérité de JavaObject)
ToArray<T>()

Crée un tableau managé à partir de ce wrapper de tableau Java.

(Hérité de Object)
ToString()

Retourne une représentation sous forme de chaîne de l’objet.

(Hérité de Object)
UnregisterFromRuntime()

Annule l’inscription de cet homologue Java à partir du runtime d’interopérabilité.

(Hérité de Object)
Wait()

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou><em>interrompu</em>.<>

(Hérité de Object)
Wait(Int64, Int32)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)
Wait(Int64)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)

Implémentations d’interfaces explicites

Nom Description
IJavaPeerable.Disposed()

DateIntervalFormat est une classe pour la mise en forme et l’analyse des intervalles de date de manière indépendante du langage.

(Hérité de JavaObject)
IJavaPeerable.Finalized()

DateIntervalFormat est une classe pour la mise en forme et l’analyse des intervalles de date de manière indépendante du langage.

(Hérité de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

DateIntervalFormat est une classe pour la mise en forme et l’analyse des intervalles de date de manière indépendante du langage.

(Hérité de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

DateIntervalFormat est une classe pour la mise en forme et l’analyse des intervalles de date de manière indépendante du langage.

(Hérité de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

DateIntervalFormat est une classe pour la mise en forme et l’analyse des intervalles de date de manière indépendante du langage.

(Hérité de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

DateIntervalFormat est une classe pour la mise en forme et l’analyse des intervalles de date de manière indépendante du langage.

(Hérité de JavaObject)
IJavaPeerable.UnregisterFromRuntime()

DateIntervalFormat est une classe pour la mise en forme et l’analyse des intervalles de date de manière indépendante du langage.

(Hérité de _Format)

Méthodes d’extension

Nom Description
GetJniTypeName(IJavaPeerable)

Obtient le nom JNI du type de l’instance self.

JavaAs<TResult>(IJavaPeerable)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

JavaCast<TResult>(IJavaObject)

Effectue une conversion de type vérifiée par le runtime Android.

JavaCast<TResult>(IJavaObject)

DateIntervalFormat est une classe pour la mise en forme et l’analyse des intervalles de date de manière indépendante du langage.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

S’applique à