Lenguaje

DateIntervalFormat Clase

Definición

DateIntervalFormat es una clase para dar formato y analizar intervalos de fecha de forma independiente del lenguaje.

[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
Herencia
DateIntervalFormat
Atributos

Comentarios

DateIntervalFormat es una clase para dar formato y analizar intervalos de fecha de forma independiente del lenguaje. Solo se admite el formato. No se admite el análisis.

El intervalo de fecha significa de una fecha a otra, por ejemplo, de "11 de enero de 2008" a "18 de enero de 2008". Hemos introducido la clase DateInterval para representarla. DateInterval es un par de UDate, que es el milisegundos estándar desde las 24:00 GMT, 1 de enero de 1970.

DateIntervalFormat da formato a DateInterval en texto lo más compacto posible. Por ejemplo, el formato de intervalo de fecha de "11 de enero de 2008" a "18 de enero". 2008" es "11-18 de enero de 2008" para inglés. Y analiza el texto en DateInterval, aunque inicialmente no se admite el análisis.

No hay información estructural en los patrones de fecha y hora. Para los signos de puntuación y literales de cadena dentro de un patrón de fecha y hora, no sabemos si es solo un separador o un prefijo o un sufijo. Sin esta información, por lo tanto, es difícil generar un subproceso (o superproceso) por algoritmo. Por lo tanto, el formato de DateInterval está controlado por patrones. Es muy similar al formato en SimpleDateFormat. Presentamos la clase DateIntervalInfo para guardar patrones de intervalo de fecha, similar al patrón de fecha y hora en SimpleDateFormat.

Lógicamente, los patrones de intervalo son asignaciones de (esqueleto, the_largest_different_calendar_field) a (date_interval_pattern).

Un esqueleto ol <><li> solo mantiene la letra de patrón de campo y omite todas las demás partes de un patrón, como el espacio, los signos de puntuación y los literales de cadena. <li> oculta el orden de los campos. <li> puede ocultar la longitud de letra de patrón de un campo.

Para esos campos de calendario que no son de dígitos, la longitud de la letra de patrón es importante, como MMM, MMMM y MMMMM; EEE y EEEE, y se respeta la longitud de letra de patrón del campo.

Para los campos de calendario de dígitos, como M o MM, d o dd, aaaa o aaaa, se omite la longitud del patrón de campo y la mejor coincidencia, que se define en los patrones de fecha y hora, se devolverá sin respetar la longitud de la letra del patrón de campo en esqueleto. </ol>

Los campos de calendario que se admiten para el formato de intervalo son: año, mes, fecha, día de la semana, am-pm, hora, hora del día, minuto y segundo (aunque actualmente no tenemos datos intervalFormat específicos para esqueletos con segundos). Esos campos de calendario se pueden definir en el orden siguiente: año > mes > fecha > hora (en el día) > minute > segundo

Los campos de calendario más grandes entre 2 calendarios es el primer campo de calendario diferente en el orden anterior.

Por ejemplo: los campos de calendario más grandes entre "10 de enero de 2007" y "20 de febrero de 2008" es el año.

En el caso de otros campos de calendario, no se admite el formato de intervalo compacto. Y el formato de intervalo se revertirá a los patrones de reserva, que es principalmente "{date0} - {date1}".

Hay un conjunto de cadenas de esqueleto estáticas predefinidas en DateFormat, hay patrones de intervalo predefinidos para esos esqueletos predefinidos en los archivos de recursos locales. Por ejemplo, para un esqueleto YEAR_ABBR_MONTH_DAY, que es "yMMMd", en en_US, si el campo de calendario más grande entre date1 y date2 es "year", el patrón de intervalo de fecha es "MMM d, aaaa - MMM d, aaaa", como "10 de enero de 2007 - 10 de enero de 2008". Si el campo de calendario más grande entre date1 y date2 es "month", el patrón de intervalo de fecha es "MMM d - MMM d, aaaa", como "10 de enero - 10 de febrero de 2007". Si el campo de calendario más grande entre date1 y date2 es "day", el patrón de intervalo de fecha es ""MMM d-d, aaaa", como "Jan 10-20, 2007".

Para el esqueleto de fecha, los patrones de intervalo cuando el año o el mes o la fecha son diferentes se definen en los archivos de recursos. Para el esqueleto de tiempo, los patrones de intervalo cuando am/pm, hora o minuto son diferentes se definen en los archivos de recursos.

Si no se encuentra un esqueleto en dateIntervalInfo de una configuración regional, lo que significa que los patrones de intervalo para el esqueleto no se definen en el archivo de recursos, el patrón de intervalo volverá al patrón de intervalo "reserva" definido en el archivo de recursos. Si no se define el patrón de "reserva" de intervalo, la reserva predeterminada es "{date0} - {data1}".

Para la combinación de fecha y hora, La regla para los patrones de intervalo genearte es: <ol><li> cuando el año, el mes o el día difieren, recurre al patrón de intervalo de reserva, que principalmente es la concatenación de las dos expresiones originales con un separador entre, por ejemplo, el patrón de intervalo de "10 de enero de 2007 10:10 am" a "11 de enero de 2007 10:10am" es "10 de enero de 2007" es "10 de enero de 2007". 2007 10:10 a. m. - 11 de enero de 2007 10:10am" <en> caso contrario, presente la fecha seguida de la expresión de intervalo para la hora. Por ejemplo, el patrón de intervalo de "10 de enero de 2007 10:10 am" a "Jan 10, 2007 11:10am" es "Jan 10, 2007 10:10 am - 11:10am" </ol>

Si dos fechas son las mismas, el patrón de intervalo es el patrón de fecha única. Por ejemplo, el patrón de intervalo de "10 de enero de 2007" a "10 de enero de 2007" es "10 de enero de 2007".

O bien, si los campos que presentan entre 2 fechas tienen exactamente los mismos valores, el patrón de intervalo es el patrón de fecha única. Por ejemplo, si el usuario solo solicita año y mes, el patrón de intervalo de "10 de enero de 2007" a "20 de enero de 2007" es "enero de 2007".

DateIntervalFormat necesita la siguiente información para el formato correcto: zona horaria, tipo de calendario, patrón, símbolos de formato de fecha y patrones de intervalo de fecha. Se puede crear una instancia de varias maneras: <ol><li> crea una instancia mediante la configuración regional predeterminada o dada más el esqueleto dado. Se recomienda a los usuarios crear formateadores de intervalo de fecha de esta manera y usar las macros de esqueleto predefinidas, como YEAR_NUM_MONTH, que consta de los campos de calendario y el estilo de formato. </li li><> crea una instancia con la configuración regional predeterminada o dada más el esqueleto dado más un valor dateIntervalInfo determinado. Este método de fábrica es para usuarios eficaces que quieren proporcionar sus propios patrones de intervalo. La configuración regional proporciona la información de zona horaria, calendario y formato de símbolos. El esqueleto más local proporciona información de patrón completa. DateIntervalInfo proporciona los patrones de intervalo de fecha. </li></ol>

Para la letra de patrón de campo de calendario, como G, y, M, d, a, h, H, m, s, etc. DateIntervalFormat usa la misma sintaxis que la del formato DateTime.

Ejemplo de código: uso general

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

Ejemplo de código: para usuarios eficaces que quieren usar su propio patrón de intervalo

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>

Los métodos de formato de DateIntervalFormat se pueden usar simultáneamente desde varios subprocesos. Las funciones que modifican el estado de un objeto DateIntervalFormat (establecedores) no se pueden usar simultáneamente con ninguna otra función.

Java documentación para android.icu.text.DateIntervalFormat.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Constructores

Nombre Description
DateIntervalFormat(IntPtr, JniHandleOwnership)

DateIntervalFormat es una clase para dar formato y analizar intervalos de fecha de forma independiente del lenguaje.

Propiedades

Nombre Description
Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
DateFormat

Obtiene el formateador de fecha.

DateIntervalInfo

Obtiene los patrones de intervalo de fecha y hora. -o bien- Establezca los patrones de intervalo de fecha y hora.

Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
JniIdentityHashCode

Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad.

(Heredado de Object)
JniManagedPeerState

DateIntervalFormat es una clase para dar formato y analizar intervalos de fecha de forma independiente del lenguaje.

(Heredado de JavaObject)
JniPeerMembers

DateIntervalFormat es una clase para dar formato y analizar intervalos de fecha de forma independiente del lenguaje.

PeerReference

Obtiene la referencia de objeto JNI para este Java del mismo nivel.

(Heredado de Object)
ThresholdClass

DateIntervalFormat es una clase para dar formato y analizar intervalos de fecha de forma independiente del lenguaje.

ThresholdType

DateIntervalFormat es una clase para dar formato y analizar intervalos de fecha de forma independiente del lenguaje.

TimeZone

Obtiene la zona horaria o establece la zona horaria para el calendario usado por este objeto DateIntervalFormat.

Métodos

Nombre Description
Clone()

Crea y devuelve una copia de este objeto.

(Heredado de _Format)
Construct(JniObjectReference, JniObjectReferenceOptions)

DateIntervalFormat es una clase para dar formato y analizar intervalos de fecha de forma independiente del lenguaje.

(Heredado de JavaObject)
Dispose()

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
Dispose(Boolean)

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
DisposeUnlessReferenced()

DateIntervalFormat es una clase para dar formato y analizar intervalos de fecha de forma independiente del lenguaje.

(Heredado de JavaObject)
Equals(Object)

DateIntervalFormat es una clase para dar formato y analizar intervalos de fecha de forma independiente del lenguaje.

(Heredado de JavaObject)
Equals(Object)

Indica si algún otro objeto es "igual a" este.

(Heredado de Object)
Format(Calendar, Calendar, StringBuffer, FieldPosition)

Dar formato a 2 calendarios para generar una cadena.

Format(DateInterval, StringBuffer, FieldPosition)

Dar formato a dateInterval para generar una cadena.

Format(ITemporal, ITemporal, StringBuffer, FieldPosition)

Dar formato a dos Temporalpara generar una cadena.

Format(Object, StringBuffer, FieldPosition)

Dar formato a un objeto para generar una cadena.

Format(Object)

Da formato a un objeto para generar una cadena.

(Heredado de _Format)
FormatToCharacterIterator(Object)

Da formato a un objeto que genera un AttributedCharacterIteratorobjeto .

(Heredado de _Format)
FormatToValue(Calendar, Calendar)

Dar formato a los calendarios 2 para generar un formattedDateInterval.

FormatToValue(DateInterval)

Dar formato a dateInterval para generar un formattedDateInterval.

FormatToValue(ITemporal, ITemporal)

Dar formato a dos temporales para generar un formattedDateInterval.

GetContext(DisplayContext+Type)

[icu] Obtenga el valor displayContext del formateador para el displayContext.Type especificado, como CAPITALIZATION.

GetHashCode()

Devuelve un valor de código hash para el objeto .

(Heredado de Object)
GetInstance(String, DateIntervalInfo)

Construya un dateIntervalFormat a partir del esqueleto DateIntervalInfo y la configuración regional predeterminada FORMAT .

GetInstance(String, Locale, DateIntervalInfo)

Construya un objeto DateIntervalFormat a partir del esqueleto dateIntervalInfo y la configuración regional especificada.

GetInstance(String, Locale)

Construye un DateIntervalFormat a partir del esqueleto y una configuración regional determinada.

GetInstance(String, ULocale, DateIntervalInfo)

Construya un objeto DateIntervalFormat a partir del esqueleto dateIntervalInfo y la configuración regional especificada.

GetInstance(String, ULocale)

Construye un DateIntervalFormat a partir del esqueleto y una configuración regional determinada.

GetInstance(String)

Construya un dateIntervalFormat a partir del esqueleto y la configuración regional predeterminada FORMAT .

JavaFinalize()
Obsoletos.

Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto .

(Heredado de Object)
Notify()

Activa un único subproceso que está esperando en el monitor de este objeto.

(Heredado de Object)
NotifyAll()

Activa todos los subprocesos que están esperando en el monitor de este objeto.

(Heredado de Object)
ParseObject(String, ParsePosition)
Obsoletos.

No se admite el análisis de intervalos de fechas.

ParseObject(String)

Analiza el texto desde el principio de la cadena especificada para generar un objeto .

(Heredado de _Format)
SetContext(DisplayContext)

<strong>[icu]</strong> Establezca un valor DisplayContext determinado en el formateador, como CAPITALIZATION_FOR_STANDALONE.

SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

DateIntervalFormat es una clase para dar formato y analizar intervalos de fecha de forma independiente del lenguaje.

(Heredado de JavaObject)
ToArray<T>()

Crea una matriz administrada a partir de este contenedor de matriz Java.

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto .

(Heredado de Object)
UnregisterFromRuntime()

Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad.

(Heredado de Object)
Wait()

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em< o >em<interrumpido>/em<.><>

(Heredado de Object)
Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)

Implementaciones de interfaz explícitas

Nombre Description
IJavaPeerable.Disposed()

DateIntervalFormat es una clase para dar formato y analizar intervalos de fecha de forma independiente del lenguaje.

(Heredado de JavaObject)
IJavaPeerable.Finalized()

DateIntervalFormat es una clase para dar formato y analizar intervalos de fecha de forma independiente del lenguaje.

(Heredado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

DateIntervalFormat es una clase para dar formato y analizar intervalos de fecha de forma independiente del lenguaje.

(Heredado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

DateIntervalFormat es una clase para dar formato y analizar intervalos de fecha de forma independiente del lenguaje.

(Heredado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

DateIntervalFormat es una clase para dar formato y analizar intervalos de fecha de forma independiente del lenguaje.

(Heredado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

DateIntervalFormat es una clase para dar formato y analizar intervalos de fecha de forma independiente del lenguaje.

(Heredado de JavaObject)
IJavaPeerable.UnregisterFromRuntime()

DateIntervalFormat es una clase para dar formato y analizar intervalos de fecha de forma independiente del lenguaje.

(Heredado de _Format)

Métodos de extensión

Nombre Description
GetJniTypeName(IJavaPeerable)

Obtiene el nombre JNI del tipo de la instancia self.

JavaAs<TResult>(IJavaPeerable)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

DateIntervalFormat es una clase para dar formato y analizar intervalos de fecha de forma independiente del lenguaje.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

Se aplica a