Campos de fecha y hora

Campos de fecha y hora

Esta guía muestra cómo trabajar con las clases de campos de fecha y hora conscientes del calendario en Aspose.Words FOSS para .NET — FieldDate, FieldCreateDate, FieldPrintDate, y FieldSaveDate — que implementan los de Word DATE, CREATEDATE, PRINTDATE, y SAVEDATE campos respectivamente. Cada clase deriva de Field e implementa IFieldWithCalendar; para el modelo base Field del modelo de objetos en sí (actualizando, desvinculando, eliminando y formateando cualquier campo), consulte el Trabajando con campos guía.


Las cuatro clases de campos de fecha y hora

FieldDate implementa el campo DATE. FieldCreateDate implementa CREATEDATE, la fecha en que se creó el documento. FieldPrintDate implementa PRINTDATE, la fecha en que el documento se imprimió por última vez. FieldSaveDate implementa SAVEDATE, la fecha en que el documento se guardó por última vez. Las cuatro son subclases de Field e implementan IFieldCodeTokenInfoProvider y IFieldWithCalendar, por lo que comparten los GetFieldCode(), Update(), Unlink(), Remove() y de formato (Format) de Field, junto con sus propios conmutadores de calendario descritos a continuación.


Seleccionar un calendario no gregoriano

Cada una de las cuatro clases expone UseLunarCalendar (bool) para generar el resultado usando el calendario lunar hijri o el calendario lunar hebreo, UseSakaEraCalendar (bool) para el calendario de la era Saka, y UseUmAlQuraCalendar (bool) para el calendario Um-al-Qura. Establezca la propiedad correspondiente a true antes de llamar a Update() para que el campo recalcule su resultado usando ese sistema de calendario en lugar del calendario gregoriano predeterminado.


Conmutador de aplicación-formato de FieldDate

FieldDate también expone UseLastFormat (bool), lo que controla si el campo usa un formato usado por última vez por la aplicación anfitriona cuando se inserta un nuevo campo DATE. FieldCreateDate, FieldPrintDate y FieldSaveDate no exponen esta propiedad.


Consejos y Buenas Prácticas

  • Establezca un interruptor de calendario (UseLunarCalendar, UseSakaEraCalendar o UseUmAlQuraCalendar) y luego llame a Update() en el campo — cambiar solo la propiedad no recalcula Result.
  • Establezca solo un interruptor de calendario en true en una instancia de campo dada; combinar más de uno produce un resultado ambiguo.
  • Usar Field.Format (un FieldFormat, cubierto en el Formato de resultados de campo guía) junto a estos interruptores de calendario para también controlar la imagen de formato numérico o de fecha/hora aplicada al resultado.
  • Elija la clase que coincida con la semántica que necesita — FieldSaveDate y FieldPrintDate leen marcas de tiempo registradas en el documento, mientras que FieldDate refleja la fecha en que se actualiza el campo.

Problemas Comunes

ProblemaCausaSolución
El interruptor de calendario no tiene efecto en el resultado mostradoEl campo no se recalculó después de que se estableció la propiedadLlame a Update() en la instancia del campo después de establecer UseLunarCalendar, UseSakaEraCalendar o UseUmAlQuraCalendar
UseLastFormat no se compila en FieldPrintDate o FieldSaveDateEsa propiedad solo existe en FieldDateUse FieldDate para el comportamiento application-format-follows, o establezca Format explícitamente en las demás clases
El resultado muestra el sistema de calendario incorrectoMás de un interruptor de calendario estaba configurado a true en el mismo campoEstablezca solo uno de UseLunarCalendar, UseSakaEraCalendar, UseUmAlQuraCalendar por instancia de campo

FAQ

¿Cuál es la diferencia entre FieldDate y FieldCreateDate?

FieldDate implementa el campo DATE (recalcula a la fecha actual cada vez que se actualiza); FieldCreateDate implementa CREATEDATE (la fecha en que se creó el documento).

¿Cómo hago que un campo de fecha use el calendario lunar hijri?

Establece UseLunarCalendar = true en la instancia FieldDate, FieldCreateDate, FieldPrintDate o FieldSaveDate, luego llama a Update().

¿Cuál de las cuatro clases rastrea cuándo se guardó por última vez un documento?

FieldSaveDate, que implementa el campo SAVEDATE.

¿Estas clases admiten imágenes de formato personalizado, no solo conmutadores de calendario?

Sí — cada uno expone un Format propiedad (FieldFormat) heredada de la infraestructura base del campo; vea la Formateo de resultados del campo guía para NumericFormat and DateTimeFormat.


API Reference Resumen

Clase/MétodoDescripción
FieldDateImplementa el campo DATE
FieldCreateDateImplementa el campo CREATEDATE
FieldPrintDateImplementa el campo PRINTDATE
FieldSaveDateImplementa el campo SAVEDATE
UseLunarCalendarRenderiza el resultado usando el calendario lunar hijri o el calendario lunar hebreo
UseSakaEraCalendarRenderiza el resultado usando el calendario de la era Saka
UseUmAlQuraCalendarRenderiza el resultado usando el calendario Um-al-Qura
FieldDate.UseLastFormatUtiliza un formato usado por última vez por la aplicación de alojamiento para un nuevo campo DATE
IFieldWithCalendarInterfaz implementada por las cuatro clases para resultados de campo con conocimiento del calendario

Ver también

 Español