Datum- und Zeitfelder

Datums- und Zeitfelder

Dieser Leitfaden zeigt, wie man mit den kalenderbewussten Datums- und Zeitfeldklassen in Aspose.Words FOSS für .NET arbeitet — FieldDate, FieldCreateDate, FieldPrintDate, und FieldSaveDate — die Word’s DATE, CREATEDATE, PRINTDATE, und SAVEDATE Felder jeweils. Jede Klasse erbt von Field und implementiert IFieldWithCalendar; für das Basis Field Objektmodell selbst (aktualisieren, entlinken, entfernen und formatieren jedes Feldes), siehe das Arbeiten mit Feldern Leitfaden.


Die vier Datums- und Zeitfeldklassen

FieldDate implementiert das Feld DATE. FieldCreateDate implementiert CREATEDATE, das Erstellungsdatum des Dokuments. FieldPrintDate implementiert PRINTDATE, das Datum, an dem das Dokument zuletzt gedruckt wurde. FieldSaveDate implementiert SAVEDATE, das Datum, an dem das Dokument zuletzt gespeichert wurde. Alle vier sind Unterklassen von Field und implementieren IFieldCodeTokenInfoProvider und IFieldWithCalendar, sodass sie Fields GetFieldCode(), Update(), Unlink(), Remove() und die Formatierungs-(Format)-Member gemeinsam nutzen, neben ihren unten beschriebenen Kalenderschaltern.


Auswahl eines nicht-gregorianischen Kalenders

Jede der vier Klassen stellt UseLunarCalendar (bool) bereit, um das Ergebnis mit dem Hijri-Lunar- oder Hebräisch-Lunar-Kalender darzustellen, UseSakaEraCalendar (bool) für den Saka-Era-Kalender und UseUmAlQuraCalendar (bool) für den Um-al-Qura-Kalender. Setzen Sie die entsprechende Eigenschaft auf true, bevor Sie Update() aufrufen, damit das Feld sein Ergebnis mit diesem Kalendersystem anstatt des standardmäßigen gregorianischen Kalenders neu berechnet.


FieldDate’s Anwendungs-Format-Schalter

FieldDate stellt zusätzlich UseLastFormat (bool) bereit, das steuert, ob das Feld ein Format verwendet, das zuletzt von der Host-Anwendung verwendet wurde, wenn ein neues DATE-Feld eingefügt wird. FieldCreateDate, FieldPrintDate und FieldSaveDate stellen diese Eigenschaft nicht bereit.


Tipps und bewährte Verfahren

  • Setzen Sie einen Kalender-Schalter (UseLunarCalendar, UseSakaEraCalendar oder UseUmAlQuraCalendar) und rufen Sie anschließend Update() für das Feld auf — das alleinige Ändern der Eigenschaft berechnet Result nicht neu.
  • Setzen Sie für eine gegebene Feldinstanz nur einen Kalender-Schalter auf true; die Kombination von mehr als einem führt zu einem mehrdeutigen Ergebnis.
  • Verwenden Field.Format (ein FieldFormat, behandelt im Feld-Ergebnisformatierung Leitfaden) zusammen mit diesen Kalenderschaltern, um ebenfalls die numerische oder Datums-/Uhrzeitformatierung, die auf das Ergebnis angewendet wird, zu steuern.
  • Wählen Sie die Klasse, die der von Ihnen benötigten Semantik entspricht — FieldSaveDate und FieldPrintDate lesen Zeitstempel, die im Dokument gespeichert sind, während FieldDate das Datum widerspiegelt, an dem das Feld aktualisiert wird.

Häufige Probleme

ProblemUrsacheLösung
Kalenderumschaltung hat keinen Einfluss auf das angezeigte ErgebnisDas Feld wurde nach dem Setzen der Eigenschaft nicht neu berechnetRufen Sie Update() auf der Feldinstanz auf, nachdem Sie UseLunarCalendar, UseSakaEraCalendar oder UseUmAlQuraCalendar gesetzt haben
UseLastFormat lässt sich nicht auf FieldPrintDate oder FieldSaveDate kompilierenDiese Eigenschaft existiert nur auf FieldDateVerwenden Sie FieldDate für das Verhalten application-format-follows oder setzen Sie Format explizit in den anderen Klassen
Ergebnis zeigt das falsche KalendersystemMehr als ein Kalenderwechsel war auf dem gleichen Feld auf true gesetztSetze pro Feldinstanz nur eines von UseLunarCalendar, UseSakaEraCalendar, UseUmAlQuraCalendar

FAQ

Was ist der Unterschied zwischen FieldDate und FieldCreateDate?

FieldDate implementiert das DATE-Feld (berechnet das aktuelle Datum jedes Mal neu, wenn es aktualisiert wird); FieldCreateDate implementiert CREATEDATE (das Datum, an dem das Dokument erstellt wurde).

Wie stelle ich ein Datumsfeld so ein, dass es den Hijri-Lunar-Kalender verwendet?

Setze UseLunarCalendar = true auf der FieldDate, FieldCreateDate, FieldPrintDate oder FieldSaveDate Instanz, dann rufe Update() auf.

Welche der vier Klassen verfolgt, wann ein Dokument zuletzt gespeichert wurde?

FieldSaveDate, das das SAVEDATE-Feld implementiert.

Unterstützen diese Klassen benutzerdefinierte Formatierungsbilder und nicht nur Kalenderumschalter?

Ja — jede gibt ein Format Eigenschaft (FieldFormat) geerbt von der Basis-Feld-Infrastruktur; siehe die Feld-Ergebnisformatierung Leitfaden für NumericFormat and DateTimeFormat.


API Reference Zusammenfassung

Klasse/MethodeBeschreibung
FieldDateImplementiert das DATE-Feld
FieldCreateDateImplementiert das CREATEDATE-Feld
FieldPrintDateImplementiert das PRINTDATE-Feld
FieldSaveDateImplementiert das Feld SAVEDATE
UseLunarCalendarRendert das Ergebnis mit dem Hijri-Mondkalender oder dem Hebräischen Mondkalender
UseSakaEraCalendarRendert das Ergebnis mit dem Saka-Ära-Kalender
UseUmAlQuraCalendarRendert das Ergebnis mit dem Um-al-Qura-Kalender
FieldDate.UseLastFormatVerwendet ein Format, das zuletzt von der Hosting-Anwendung für ein neues DATE-Feld verwendet wurde
IFieldWithCalendarSchnittstelle, die von allen vier Klassen für kalenderbewusste Feldresultate implementiert wird

Siehe auch

 Deutsch