Calendar Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
La Calendar
clase es una clase abstracta que proporciona métodos para convertir entre un instante específico en el tiempo y un conjunto de #fields calendar fields
como YEAR
, MONTH
, DAY_OF_MONTH
, HOUR
, etc., y para manipular los campos de calendario, como obtener la fecha de la semana siguiente.
[Android.Runtime.Register("java/util/Calendar", DoNotGenerateAcw=true)]
public abstract class Calendar : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable, Java.Lang.ICloneable, Java.Lang.IComparable
[<Android.Runtime.Register("java/util/Calendar", DoNotGenerateAcw=true)>]
type Calendar = class
inherit Object
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface ICloneable
interface IComparable
- Herencia
- Derivado
- Atributos
- Implementaciones
Comentarios
La Calendar
clase es una clase abstracta que proporciona métodos para convertir entre un instante específico en el tiempo y un conjunto de #fields calendar fields
como YEAR
, , MONTH
DAY_OF_MONTH
, HOUR
, etc., y para manipular los campos de calendario, como obtener la fecha de la semana siguiente. Un instante en el tiempo se puede representar mediante un valor de milisegundos que es un desplazamiento de la "Época"><em>Época</em>, 1 de enero de 1970 00:00:00.000 GMT (Gregoriano).
La clase también proporciona campos y métodos adicionales para implementar un sistema de calendario concreto fuera del paquete. Esos campos y métodos se definen como protected
.
Al igual que otras clases sensibles a la configuración regional, Calendar
proporciona un método de clase, getInstance
, para obtener un objeto generalmente útil de este tipo. Calendar
El método de getInstance
devuelve un Calendar
objeto cuyos campos de calendario se han inicializado con la fecha y hora actuales: <blockquote>
Calendar rightNow = Calendar.getInstance();
</Blockquote>
Un Calendar
objeto puede generar todos los valores de campo de calendario necesarios para implementar el formato de fecha y hora para un idioma y un estilo de calendario determinados (por ejemplo, japonés-gregoriano, japonés-tradicional). Calendar
define el intervalo de valores devueltos por determinados campos de calendario, así como su significado. Por ejemplo, el primer mes del sistema de calendario tiene el valor MONTH == JANUARY
de todos los calendarios. Otros valores se definen mediante la subclase concreta, como ERA
. Consulte la documentación de campos individuales y la documentación de subclase para obtener más información.
<h2>Obtener y establecer valores< de campo de calendario/h2>
Los valores del campo de calendario se pueden establecer llamando a los set
métodos . Los valores de campo establecidos en un Calendar
no se interpretarán hasta que necesite calcular su valor de tiempo (milisegundos de la época) o los valores de los campos de calendario. get
Llamar a , getTimeInMillis
, getTime
add
e roll
implica este cálculo.
<h3>Leniency</h3>
Calendar
tiene dos modos para interpretar los campos del calendario, <em>lenient</em> y <em>non-lenient</em>. Cuando un Calendar
objeto está en modo lenciente, acepta una gama más amplia de valores de campo de calendario que genera. Cuando un Calendar
objeto vuelve a calcular los valores de campo de calendario para devolver por get()
, se normalizan todos los campos del calendario. Por ejemplo, un leniento GregorianCalendar
interpreta MONTH == JANUARY
, DAY_OF_MONTH == 32
como el 1 de febrero.
Cuando un Calendar
objeto está en modo no lente, produce una excepción si hay alguna incoherencia en sus campos de calendario. Por ejemplo, un objeto GregorianCalendar
siempre genera DAY_OF_MONTH
valores entre 1 y la longitud del mes. Un no sensible GregorianCalendar
produce una excepción al calcular sus valores de campo de tiempo o calendario si se ha establecido algún valor de campo fuera del intervalo.
<h3>"first_week">Primera semana</h3>
Calendar
define una semana de siete días específica de la configuración regional con dos parámetros: el primer día de la semana y los días mínimos de la primera semana (de 1 a 7). Estos números se toman de los datos del recurso de configuración regional o de la propia configuración regional cuando se construye un Calendar
. Si la configuración regional designada contiene extensiones Unicode "fw", el primer día de la semana se obtendrá según esas extensiones. También se pueden especificar explícitamente a través de los métodos para establecer sus valores.
Al establecer o obtener los WEEK_OF_MONTH
campos o WEEK_OF_YEAR
, Calendar
debe determinar la primera semana del mes o año como punto de referencia. La primera semana de un mes o año se define como el período de siete días más antiguo que comienza getFirstDayOfWeek()
y contiene al menos getMinimalDaysInFirstWeek()
días de ese mes o año. Semanas numeradas ..., -1, 0 preceden a la primera semana; semanas numeradas 2, 3,... síguelo. Tenga en cuenta que la numeración normalizada devuelta por get()
puede ser diferente. Por ejemplo, una subclase específica Calendar
puede designar la semana anterior a la semana 1 de un año como semana <i>n</i>
del año anterior.
<h3>Resolución< de campos de calendario/h3>
Al calcular una fecha y hora a partir de los campos del calendario, puede haber información insuficiente para el cálculo (por ejemplo, solo año y mes sin día de mes), o puede haber información incoherente (como martes, 15 de julio de 1996 (gregoriano): el 15 de julio de 1996 es realmente un lunes). Calendar
resolverá los valores de campo del calendario para determinar la fecha y hora de la siguiente manera.
"resolución">Si hay algún conflicto en los valores de campo del calendario, <c>Calendar</c> proporciona prioridades a los campos de calendario que se han establecido más recientemente. A continuación se muestran las combinaciones predeterminadas de los campos de calendario. Se usará la combinación más reciente, determinada por el campo único establecido más recientemente.
"date_resolution">Para los campos de fecha: <blockquote>
YEAR + MONTH + DAY_OF_MONTH
YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK
YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK
YEAR + DAY_OF_YEAR
YEAR + DAY_OF_WEEK + WEEK_OF_YEAR
</Blockquote>
"time_resolution">Para la hora de los campos de día: <blockquote>
HOUR_OF_DAY
AM_PM + HOUR
</Blockquote>
Si hay campos de calendario cuyos valores no se han establecido en la combinación de campos seleccionados, Calendar
usa sus valores predeterminados. El valor predeterminado de cada campo puede variar según los sistemas de calendario concretos. Por ejemplo, en GregorianCalendar
, el valor predeterminado de un campo es el mismo que el del inicio de la época: es decir, , YEAR = 1970
MONTH = JANUARY
, DAY_OF_MONTH = 1
, etc.
<strong>Note:</strong> Hay ciertas ambigüedades posibles en la interpretación de determinados tiempos singulares, que se resuelven de las siguientes maneras: <ol><li> 23:59 es el último minuto del día y 00:00 es el primer minuto del día siguiente. Por lo tanto, 23:59 el 31 de dic, 1999 < 00:00 el 1 de enero de 2000 < 00:01 el 1 de enero de 2000.
<li> Aunque históricamente no precisa, la medianoche también pertenece a "am", y el mediodía pertenece a "pm", así que el mismo día, 12:00 am (medianoche) < 12:01 am, y 12:00 pm (mediodía) < 12:01 pm </ol>
Las cadenas de formato de fecha u hora no forman parte de la definición de un calendario, ya que deben ser modificables o invalidables por el usuario en tiempo de ejecución. Use DateFormat
para dar formato a fechas.
<h3>Manipulación< de campos/h3>
Los campos de calendario se pueden cambiar mediante tres métodos: set()
, add()
y roll()
.
<campo de calendario de cambios seguros>set(f, value)
< o seguros> en value
.f
Además, establece una variable miembro interna para indicar que se ha cambiado el campo f
de calendario. Aunque el campo f
de calendario se cambia inmediatamente, el valor de hora del calendario en milisegundos no se vuelve a calcular hasta que se realiza la siguiente llamada a get()
, , getTime()
getTimeInMillis()
, add()
o roll()
. Por lo tanto, varias llamadas para set()
no desencadenar varios cálculos innecesarios. Como resultado de cambiar un campo de calendario mediante set()
, otros campos de calendario también pueden cambiar, según el campo de calendario, el valor del campo de calendario y el sistema de calendario. Además, get(f)
no devolverá necesariamente value
establecido por la llamada al método después de volver a set
calcular los campos del calendario. Los detalles están determinados por la clase de calendario concreta.
<em>Example</em>: considere un GregorianCalendar
valor original establecido en el 31 de agosto de 1999. La llamada set(Calendar.MONTH, Calendar.SEPTEMBER)
establece la fecha en el 31 de septiembre de 1999. Se trata de una representación interna temporal que se resuelve en el 1 de octubre de 1999 si getTime()
se llama a . Sin embargo, una llamada a set(Calendar.DAY_OF_MONTH, 30)
antes de la llamada a getTime()
establece la fecha en el 30 de septiembre de 1999, ya que no se produce ninguna recomputación después set()
de sí misma.
<strong>add(f, delta)
</strong> agrega delta
al campo f
. Esto equivale a llamar a set(f, get(f) + delta)
con dos ajustes:
<Blockquote>
<strong>Add rule 1</strong>. El valor del campo f
después de la llamada menos el valor del campo f
antes de la llamada es delta
, módulo cualquier desbordamiento que se haya producido en el campo f
. El desbordamiento se produce cuando un valor de campo supera su intervalo y, como resultado, el siguiente campo mayor se incrementa o disminuye y el valor del campo se ajusta de nuevo en su intervalo.
<strong>Agregue la regla 2</strong>. Si se espera que un campo más pequeño sea invariable, pero es imposible que sea igual a su valor anterior debido a los cambios en su campo mínimo o máximo después de cambiar el campo f
u otras restricciones, como los cambios de desplazamiento de zona horaria, su valor se ajusta para ser lo más cercano posible a su valor esperado. Un campo más pequeño representa una unidad de tiempo más pequeña. HOUR
es un campo más pequeño que DAY_OF_MONTH
. No se realiza ningún ajuste en campos más pequeños que no se espera que sean invariables. El sistema de calendario determina qué campos se espera que sean invariables.
</Blockquote>
Además, a diferencia set()
de , add()
fuerza una recomputación inmediata de los milisegundos del calendario y todos los campos.
<em>Example</em>: considere un GregorianCalendar
valor original establecido en el 31 de agosto de 1999. La llamada add(Calendar.MONTH, 13)
establece el calendario en el 30 de septiembre de 2000. <strong>Add rule 1</strong> establece el MONTH
campo en septiembre, ya que la adición de 13 meses a agosto da septiembre del próximo año. Puesto DAY_OF_MONTH
que no puede ser 31 en septiembre en , <GregorianCalendar
agregue fuerte>la regla 2</strong> establece el valor DAY_OF_MONTH
en 30, el valor más cercano posible. Aunque es un campo más pequeño, DAY_OF_WEEK
no se ajusta mediante la regla 2, ya que se espera que cambie cuando el mes cambie en .GregorianCalendar
<fuerte>roll(f, delta)
</fuerte> agrega delta
al campo f
sin cambiar campos más grandes. Esto equivale a llamar a add(f, delta)
con el ajuste siguiente:
<Blockquote>
<fuerte>regla roll</fuerte>. Los campos más grandes no se modifican después de la llamada. Un campo mayor representa una unidad de tiempo mayor. DAY_OF_MONTH
es un campo mayor que HOUR
.
</Blockquote>
<Em>Example</em>: vea java.util.GregorianCalendar#roll(int, int)
.
<modelo de uso< seguro>/seguro>. Para motivar el comportamiento de y roll()
, considere un componente de add()
interfaz de usuario con botones de incremento y decremento para el mes, el día y el año, y un subyacenteGregorianCalendar
. Si la interfaz lee el 31 de enero de 1999 y el usuario presiona el botón de incremento del mes, ¿qué debe leer? Si la implementación subyacente usa set()
, podría leer el 3 de marzo de 1999. Un mejor resultado sería el 28 de febrero de 1999. Además, si el usuario vuelve a presionar el botón de incremento del mes, debe leer el 31 de marzo de 1999, no el 28 de marzo de 1999. Al guardar la fecha original y usar o add()
roll()
, dependiendo de si los campos más grandes deben verse afectados, la interfaz de usuario puede comportarse como la mayoría de los usuarios esperarán de forma intuitiva.
Se ha agregado en la versión 1.1.
Documentación de Java para java.util.Calendar
.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código Project y que se usan según los términos Creative Commons 2.5 Attribution License.
Constructores
Calendar() |
Construye un calendario con la zona horaria predeterminada y la configuración regional predeterminada |
Calendar(IntPtr, JniHandleOwnership) |
Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el tiempo de ejecución. |
Calendar(TimeZone, Locale) |
Construye un calendario con la zona horaria y la configuración regional especificadas. |
Campos
AllStyles |
Obsoletos.
Especificador de estilo para |
Am |
Valor del |
AmPm |
Obsoletos.
Número de campo para |
April |
Valor del |
August |
Valor del |
Date |
Obsoletos.
Número de campo para |
DayOfMonth |
Obsoletos.
Número de campo para |
DayOfWeek |
Obsoletos.
Número de campo para |
DayOfWeekInMonth |
Obsoletos.
Número de campo para |
DayOfYear |
Obsoletos.
Número de campo para |
December |
Valor del |
DstOffset |
Obsoletos.
Número de campo para |
Era |
Obsoletos.
Número de campo para |
February |
Valor del |
FieldCount |
Número de campos distintos reconocidos por |
Friday |
Valor del |
Hour |
Obsoletos.
Número de campo para |
HourOfDay |
Obsoletos.
Número de campo para |
January |
Valor del |
July |
Valor del |
June |
Valor del |
Long |
Obsoletos.
Especificador de estilo para |
LongFormat |
Especificador de estilo para |
LongStandalone |
Especificador de estilo para |
March |
Valor del |
May |
Valor del |
Millisecond |
Obsoletos.
Número de campo para |
Minute |
Obsoletos.
Número de campo para |
Monday |
Valor del |
Month |
Obsoletos.
Número de campo para |
NarrowFormat |
Especificador de estilo para |
NarrowStandalone |
Especificador de estilo para |
November |
Valor del |
October |
Valor del |
Pm |
Valor del |
Saturday |
Valor del |
Second |
Obsoletos.
Número de campo para |
September |
Valor del |
Short |
Obsoletos.
Especificador de estilo para |
ShortFormat |
Especificador de estilo para |
ShortStandalone |
Especificador de estilo para |
Sunday |
Valor del |
Thursday |
Valor del |
Tuesday |
Valor del |
Undecimber |
Valor del |
Wednesday |
Valor del |
WeekOfMonth |
Obsoletos.
Número de campo para |
WeekOfYear |
Obsoletos.
Número de campo para |
Year |
Obsoletos.
Número de campo para |
ZoneOffset |
Obsoletos.
Número de campo para |
Propiedades
AreFieldsSet |
True si |
AvailableCalendarTypes |
Devuelve un objeto no modificable |
CalendarType |
Devuelve el tipo de calendario de . |
Class |
Devuelve la clase en tiempo de ejecución de este |
Fields |
Los valores del campo de calendario para la hora establecida actualmente para este calendario. |
FirstDayOfWeek |
Obtiene lo que es el primer día de la semana; e. |
Handle |
Identificador de la instancia de Android subyacente. (Heredado de Object) |
Instance |
Obtiene un calendario con la zona horaria y la configuración regional predeterminadas. |
IsTimeSet |
True si el valor de |
IsWeekDateSupported |
Devuelve si admite |
JniIdentityHashCode |
La |
JniPeerMembers |
La |
Lenient |
Indica si la interpretación de fecha y hora es lenciente. |
MinimalDaysInFirstWeek |
Obtiene cuáles son los días mínimos necesarios en la primera semana del año; e. |
PeerReference |
La |
ThresholdClass |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. |
ThresholdType |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. |
Time |
Devuelve un |
TimeInMillis |
Devuelve el valor de hora de este calendario en milisegundos. |
TimeZone |
Obtiene la zona horaria. -o bien- Establece la zona horaria con el valor de zona horaria especificado. |
WeeksInWeekYear |
Devuelve el número de semanas del año de semana representado por este |
WeekYear |
Devuelve el año de la semana representado por este |
Métodos
Add(CalendarField, Int32) |
Agrega o resta la cantidad de tiempo especificada al campo de calendario especificado, en función de las reglas del calendario. |
After(Object) |
Devuelve si representa |
Before(Object) |
Devuelve si representa |
Clear() |
Establece todos los valores de campo de calendario y el valor de hora (desplazamiento de milisegundos de la "#Epoch">Época) de este |
Clear(CalendarField) |
Establece el valor de campo de calendario especificado y el valor de hora (desplazamiento de milisegundos de la "#Epoch">Época) de este |
Clone() |
Crea y devuelve una copia de este objeto. |
CompareTo(Calendar) |
Compara los valores de tiempo (desplazamientos de milisegundos de la "#Epoch">Época) representados por dos |
Complete() |
Rellena los campos sin establecer en los campos del calendario. |
ComputeFields() |
Convierte el valor |
ComputeTime() |
Convierte los valores del campo de calendario actual en |
Dispose() |
La |
Dispose(Boolean) |
La |
Equals(Object) |
Indica si algún otro objeto es "igual a" este. (Heredado de Object) |
Get(CalendarField) |
Devuelve el valor del campo de calendario especificado. |
GetActualMaximum(CalendarField) |
Devuelve el valor máximo que podría tener el campo de calendario especificado, dado el valor de hora de . |
GetActualMinimum(CalendarField) |
Devuelve el valor mínimo que podría tener el campo de calendario especificado, dado el valor de hora de . |
GetAvailableLocales() |
Devuelve una matriz de todas las configuraciones regionales para las que los |
GetDisplayName(Int32, Int32, Locale) |
Devuelve la representación de cadena del valor de calendario |
GetDisplayNames(Int32, Int32, Locale) |
Devuelve un |
GetGreatestMinimum(CalendarField) |
Devuelve el valor mínimo más alto para el campo de calendario especificado de esta |
GetHashCode() |
Devuelve un valor de código hash del objeto. (Heredado de Object) |
GetInstance(Locale) |
Obtiene un calendario con la zona horaria predeterminada y la configuración regional especificada. |
GetInstance(TimeZone) |
Obtiene un calendario con la zona horaria especificada y la configuración regional predeterminada. |
GetInstance(TimeZone, Locale) |
Obtiene un calendario con la zona horaria y la configuración regional especificadas. |
GetLeastMaximum(CalendarField) |
Devuelve el valor máximo más bajo para el campo de calendario especificado de esta |
GetMaximum(CalendarField) |
Devuelve el valor máximo del campo de calendario especificado de esta |
GetMinimum(CalendarField) |
Devuelve el valor mínimo para el campo de calendario especificado de esta |
InternalGet(Int32) |
Devuelve el valor del campo de calendario especificado. |
IsSet(CalendarField) |
Determina si el campo de calendario especificado tiene un conjunto de valores, incluidos los casos en los que se ha establecido el valor por los cálculos de campos internos desencadenados por una |
JavaFinalize() |
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) |
Roll(CalendarField, Boolean) |
Agrega o resta (arriba o abajo) una sola unidad de tiempo en el campo de tiempo dado sin cambiar campos más grandes. |
Roll(CalendarField, Int32) |
Agrega la cantidad especificada (firmada) al campo de calendario especificado sin cambiar los campos más grandes. |
Set(CalendarField, Int32) |
Establece el campo de calendario especificado en el valor especificado. |
Set(Int32, Int32, Int32) |
Establece los valores de los campos |
Set(Int32, Int32, Int32, Int32, Int32) |
Establece los valores de los campos |
Set(Int32, Int32, Int32, Int32, Int32, Int32) |
Establece los valores de los campos |
SetHandle(IntPtr, JniHandleOwnership) |
Establece la propiedad Handle. (Heredado de Object) |
SetWeekDate(Int32, Int32, Int32) |
Establece la fecha de esto |
ToArray<T>() |
La |
ToInstant() |
La |
ToString() |
Devuelve una representación de cadena del objeto. (Heredado de Object) |
UnregisterFromRuntime() |
La |
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) |
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, 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) |
Implementaciones de interfaz explícitas
IComparable.CompareTo(Object) |
La |
IJavaPeerable.Disposed() |
La |
IJavaPeerable.DisposeUnlessReferenced() |
La |
IJavaPeerable.Finalized() |
La |
IJavaPeerable.JniManagedPeerState |
La |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
La |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
La |
IJavaPeerable.SetPeerReference(JniObjectReference) |
La |
Métodos de extensión
JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
JavaCast<TResult>(IJavaObject) |
La |
GetJniTypeName(IJavaPeerable) |
La |