Pole data a času

Pole data a času

Tento průvodce ukazuje, jak pracovat s kalendářsky-vědomými třídami polí pro datum a čas v Aspose.Words FOSS pro .NET — FieldDate, FieldCreateDate, FieldPrintDate, a FieldSaveDate — které implementují Wordovy DATE, CREATEDATE, PRINTDATE, a SAVEDATE pole příslušně. Každá třída dědí z Field a implementuje IFieldWithCalendar; pro základní Field objektový model samotný (aktualizace, odpojení, odstraňování a formátování libovolného pole), viz the Práce s poli průvodce.


Čtyři třídy polí data a času

FieldDate implementuje pole DATE. FieldCreateDate implementuje CREATEDATE, datum vytvoření dokumentu. FieldPrintDate implementuje PRINTDATE, datum posledního tisku dokumentu. FieldSaveDate implementuje SAVEDATE, datum posledního uložení dokumentu. Všechny čtyři jsou podtřídami Field a implementují IFieldCodeTokenInfoProvider a IFieldWithCalendar, takže sdílejí Field``GetFieldCode(), Update(), Unlink(), Remove() a formátovací (Format) členy spolu s vlastními přepínači kalendáře popsanými níže.


Výběr negregoriánského kalendáře

Každá ze čtyř tříd poskytuje UseLunarCalendar (bool) pro vykreslení výsledku pomocí hidžského lunárního nebo hebrejského lunárního kalendáře, UseSakaEraCalendar (bool) pro kalendář éry Saka a UseUmAlQuraCalendar (bool) pro kalendář Um-al-Qura. Nastavte odpovídající vlastnost na true před voláním Update(), aby pole přepočítalo svůj výsledek pomocí tohoto kalendářního systému místo výchozího gregoriánského kalendáře.


FieldDate’s Přepínač formátu aplikace

FieldDate také zpřístupňuje UseLastFormat (bool), což řídí, zda pole použije formát naposledy použitý hostitelskou aplikací při vložení nového pole DATE. FieldCreateDate, FieldPrintDate a FieldSaveDate tuto vlastnost nezpřístupňují.


Tipy a osvědčené postupy

  • Nastavte kalendářový přepínač (UseLunarCalendar, UseSakaEraCalendar nebo UseUmAlQuraCalendar) a poté zavolejte Update() na poli — změna samotné vlastnosti nepřepočítá Result.
  • Pro danou instanci pole nastavte pouze jeden kalendářový přepínač na true; kombinace více než jednoho vede k nejednoznačnému výsledku.
  • Použijte Field.Format (a FieldFormat, uvedeno v Formátování výsledků pole průvodce) spolu s těmito přepínači kalendáře také řídit číselný nebo datum/časový formátovací vzor aplikovaný na výsledek.
  • Vyberte třídu, která odpovídá požadované sémantice — FieldSaveDate a FieldPrintDate čtou časové razítka zaznamenaná v dokumentu, zatímco FieldDate odráží jakékoli datum, kdy je pole aktualizováno.

Časté problémy

ProblémPříčinaOprava
Přepínač kalendáře nemá žádný vliv na zobrazený výsledekPole nebylo přepočítáno po nastavení vlastnostiZavolejte Update() na instanci pole po nastavení UseLunarCalendar, UseSakaEraCalendar nebo UseUmAlQuraCalendar
UseLastFormat se nekompiluje na FieldPrintDate nebo FieldSaveDateTato vlastnost existuje pouze v FieldDatePoužijte FieldDate pro chování application-format-follows, nebo nastavte Format explicitně na ostatních třídách
Výsledek ukazuje nesprávný kalendářní systémNa stejném poli byl nastaven více než jeden přepínač kalendáře na trueNastavte pouze jeden z UseLunarCalendar, UseSakaEraCalendar, UseUmAlQuraCalendar na každou instanci pole

FAQ

Jaký je rozdíl mezi FieldDate a FieldCreateDate?

FieldDate implementuje pole DATE (přepočítává se na aktuální datum při každé aktualizaci); FieldCreateDate implementuje CREATEDATE (datum vytvoření dokumentu).

Jak mohu nastavit pole data tak, aby používalo kalendář Hijri (lunární)?

Nastavte UseLunarCalendar = true na instanci FieldDate, FieldCreateDate, FieldPrintDate nebo FieldSaveDate, poté zavolejte Update().

Která ze čtyř tříd sleduje, kdy byl dokument naposledy uložen?

FieldSaveDate, která implementuje pole SAVEDATE.

Podporují tyto třídy vlastní formátování obrázků, nejen přepínače kalendářů?

Ano — každý vystavuje a Format vlastnost (FieldFormat) zděděno z infrastruktury základního pole; viz Formátování výsledků pole průvodce pro NumericFormat and DateTimeFormat.


API Reference Shrnutí

Třída/MetodaPopis:
FieldDateImplementuje pole DATE
FieldCreateDateImplementuje pole CREATEDATE
FieldPrintDateImplementuje pole PRINTDATE
FieldSaveDateImplementuje pole SAVEDATE
UseLunarCalendarVykresluje výsledek pomocí lunárního kalendáře Hijri nebo hebrejského lunárního kalendáře
UseSakaEraCalendarVykresluje výsledek pomocí kalendáře Saka Era
UseUmAlQuraCalendarVykresluje výsledek pomocí kalendáře Um-al-Qura
FieldDate.UseLastFormatPoužívá formát naposledy použitý hostitelskou aplikací pro nové pole DATE
IFieldWithCalendarRozhraní implementované všemi čtyřmi třídami pro kalendářově-vědomé výsledky polí

Viz také:

 Čeština