日期和时间字段

日期和时间字段

本指南展示了如何在 Aspose.Words FOSS for .NET 中使用支持日历的日期和时间字段类 — FieldDate, FieldCreateDate, FieldPrintDate, 并且 FieldSaveDate — 实现了 Word 的 DATE, CREATEDATE, PRINTDATE, 并且 SAVEDATE 字段,分别。每个类派生自 Field 并实现 IFieldWithCalendar; 对于基础 Field 对象模型本身(更新、取消链接、删除以及格式化任何字段),请参阅 使用字段 指南。


四个日期和时间字段类

FieldDate 实现了 DATE 字段。FieldCreateDate 实现了 CREATEDATE,即文档创建的日期。FieldPrintDate 实装了 PRINTDATE,即文档最近打印的日期。FieldSaveDate 实装了 SAVEDATE,即文档最近保存的日期。所有四个类都是 Field 的子类,并实现了 IFieldCodeTokenInfoProvider 和 IFieldWithCalendar,因此它们共享 Field 的 GetFieldCode()、Update()、Unlink()、Remove() 以及格式化(Format)成员,并拥有下面描述的各自日历开关。


选择非公历日历

每个类都公开 UseLunarCalendar(bool)以使用伊斯兰阴历或希伯来阴历渲染结果,UseSakaEraCalendar(bool)用于萨卡纪元日历,UseUmAlQuraCalendar(bool)用于乌姆·阿尔-库拉日历。在调用 Update() 之前,将相应属性设置为 true,即可使字段使用该日历系统重新计算其结果,而不是默认的公历。


FieldDate 的应用格式开关

FieldDate 另外公开了 UseLastFormat(bool),它控制在插入新的 DATE 字段时,字段是否使用宿主应用程序上一次使用的格式。FieldCreateDate、FieldPrintDate 和 FieldSaveDate 不公开此属性。


技巧与最佳实践

  • 设置日历开关(UseLunarCalendar、UseSakaEraCalendar 或 UseUmAlQuraCalendar),然后在字段上调用 Update() —— 仅更改属性本身不会重新计算 Result。
  • 在给定的字段实例上只能将一个日历开关设置为 true;组合多个开关会产生歧义的结果。
  • 使用 Field.Format (a FieldFormat,在 字段结果格式化 指南) 与这些日历开关一起使用,以控制应用于结果的数字或日期/时间格式化模式。
  • 选择与您所需语义匹配的类 —— FieldSaveDate 和 FieldPrintDate 读取文档中记录的时间戳,而 FieldDate 则反映字段被更新的日期。

常见问题

问题原因修复
日历切换对显示结果没有影响属性设置后字段未重新计算在设置 UseLunarCalendar、UseSakaEraCalendar 或 UseUmAlQuraCalendar 后,对字段实例调用 Update()
UseLastFormat 在 FieldPrintDate 或 FieldSaveDate 上无法编译该属性仅在 FieldDate 上存在使用 FieldDate 实现 application-format-follows 行为,或在其他类上显式设置 Format
结果显示错误的日历系统同一字段上有多个日历开关被设置为 true每个字段实例只能设置 UseLunarCalendar、UseSakaEraCalendar、UseUmAlQuraCalendar 中的一个

FAQ

FieldDate和FieldCreateDate有什么区别?

FieldDate实现了DATE字段(每次更新时重新计算为当前日期);FieldCreateDate实现了CREATEDATE(文档创建的日期)。

如何让日期字段使用伊斯兰阴历?

在FieldDate、FieldCreateDate、FieldPrintDate或FieldSaveDate实例上设置UseLunarCalendar = true,然后调用Update()。

四个类中哪一个跟踪文档最后一次保存的时间?

FieldSaveDate,实现了SAVEDATE字段。

这些类是否支持自定义格式化图片,而不仅仅是日历切换?

是的 — 每个都公开一个 Format 属性 (FieldFormat) 继承自基础字段基础设施;请参阅 字段结果格式化 指南 NumericFormat and DateTimeFormat.


API Reference 摘要

类/方法描述
FieldDate实现 DATE 字段
FieldCreateDate实现 CREATEDATE 字段
FieldPrintDate实现 PRINTDATE 字段
FieldSaveDate实现 SAVEDATE 字段
UseLunarCalendar使用 Hijri Lunar 或 Hebrew Lunar 日历渲染结果
UseSakaEraCalendar使用 Saka Era 日历渲染结果
UseUmAlQuraCalendar使用 Um-al-Qura 日历渲染结果
FieldDate.UseLastFormat使用托管应用程序上次使用的格式来创建新的 DATE 字段
IFieldWithCalendar所有四个类实现的用于日历感知字段结果的接口

另请参阅

 中文