Поля дати та часу
Поля дати та часу
Цей посібник показує, як працювати з класами полів дати та часу, орієнтованими на календар, у Aspose.Words FOSS для .NET — FieldDate, FieldCreateDate, FieldPrintDate, і FieldSaveDate — які реалізують Word’s DATE, CREATEDATE, PRINTDATE, і SAVEDATE поля відповідно. Кожен клас успадковується від Field і реалізує IFieldWithCalendar; для базового Field моделі об’єктів (оновлення, відв’язування, видалення та форматування будь-якого поля), дивіться the Робота з полями посібник.
Чотири класи полів дати та часу
FieldDate реалізує поле DATE. FieldCreateDate реалізує CREATEDATE, дату створення документа. FieldPrintDate реалізує PRINTDATE, дату останнього друку документа. FieldSaveDate реалізує SAVEDATE, дату останнього збереження документа. Усі чотири є підкласами Field і реалізують IFieldCodeTokenInfoProvider і IFieldWithCalendar, тому вони успадковують Field’s GetFieldCode(), Update(), Unlink(), Remove() та члени форматування (Format) разом зі своїми календарними перемикачами, описаними нижче.
Вибір не-григоріанського календаря
Кожен з чотирьох класів надає UseLunarCalendar (bool) для відображення результату за допомогою гігіра або єврейського місячного календаря, UseSakaEraCalendar (bool) для календаря ери Сака та UseUmAlQuraCalendar (bool) для календаря Ум-аль-Кура. Встановіть відповідну властивість у true перед викликом Update(), щоб поле переобчислило свій результат, використовуючи цю календарну систему замість типового григоріанського календаря.
FieldDate’s Перемикач застосування-формату
FieldDate додатково надає UseLastFormat (bool), який контролює, чи поле використовує формат, останній раз використаний хостинг-додатком, коли вставляється нове поле DATE. FieldCreateDate, FieldPrintDate та FieldSaveDate не надають цю властивість.
Поради та найкращі практики
- Встановіть перемикач календаря (
UseLunarCalendar,UseSakaEraCalendarабоUseUmAlQuraCalendar) і потім викличтеUpdate()для поля — зміна лише властивості не перераховуєResult. - Встановіть лише один перемикач календаря в
trueдля даного екземпляра поля; комбінування більш ніж одного дає неоднозначний результат. - Використовуйте
Field.Format(aFieldFormat, включено у Форматування результату поля посібник) разом із цими перемикачами календаря, щоб також контролювати числове або формат дати/часу, що застосовується до результату. - Виберіть клас, що відповідає потрібній семантиці —
FieldSaveDateіFieldPrintDateчитають часові мітки, записані в документі, тоді якFieldDateвідображає дату, коли поле оновлюється.
Поширені проблеми
| Проблема | Причина | Виправлення |
|---|---|---|
| Перемикач календаря не впливає на відображений результат | Поле не було перераховано після встановлення властивості | Викличте Update() на екземплярі поля після встановлення UseLunarCalendar, UseSakaEraCalendar або UseUmAlQuraCalendar |
UseLastFormat не компілюється на FieldPrintDate або FieldSaveDate | Ця властивість існує лише в FieldDate | Використовуйте FieldDate для поведінки application-format-follows, або явно встановіть Format в інших класах |
| Результат показує неправильну календарну систему | Більше одного перемикача календаря було встановлено на true в одному полі | Встановіть лише один із UseLunarCalendar, UseSakaEraCalendar, UseUmAlQuraCalendar для кожного екземпляру поля |
FAQ
У чому різниця між FieldDate і FieldCreateDate?
FieldDate реалізує поле DATE (перераховує поточну дату щоразу при оновленні); FieldCreateDate реалізує CREATEDATE (дата створення документа).
Як змусити поле дати використовувати календар Hijri Lunar?
Встановіть UseLunarCalendar = true у екземплярі FieldDate, FieldCreateDate, FieldPrintDate або FieldSaveDate, потім викличте Update().
Який із чотирьох класів відстежує, коли документ був останній раз збережений?
FieldSaveDate, який реалізує поле SAVEDATE.
Чи підтримують ці класи налаштовуване форматування зображень, а не лише перемикачі календаря?
Так — кожен надає Format властивість (FieldFormat) успадковано від базової інфраструктури поля; дивіться Форматування результату поля посібник з NumericFormat and DateTimeFormat.
API Reference Підсумок
| Клас/Метод | Опис |
|---|---|
FieldDate | Реалізує поле DATE |
FieldCreateDate | Реалізує поле CREATEDATE |
FieldPrintDate | Реалізує поле PRINTDATE |
FieldSaveDate | Реалізує поле SAVEDATE |
UseLunarCalendar | Відображає результат, використовуючи хіджрійський місячний або єврейський місячний календар |
UseSakaEraCalendar | Відображає результат, використовуючи календар Сака |
UseUmAlQuraCalendar | Відображає результат, використовуючи календар Um-al-Qura |
FieldDate.UseLastFormat | Використовує формат, який останній раз застосовував хостинг-додаток для нового поля DATE |
IFieldWithCalendar | Інтерфейс, реалізований усіма чотирма класами для результатів полів, що враховують календар |