日付と時刻フィールド
日付と時刻フィールド
このガイドでは、Aspose.Words FOSS for .NET のカレンダー対応日付および時刻フィールドクラスの使い方を示します — FieldDate, FieldCreateDate, FieldPrintDate, および FieldSaveDate — Word の実装である DATE, CREATEDATE, PRINTDATE, および SAVEDATE フィールドです。それぞれのクラスは から派生します Field と実装します IFieldWithCalendar; 基底 Field オブジェクトモデル自体(更新、リンク解除、削除、任意のフィールドの書式設定)については、 see the フィールドの操作 ガイド。
4つの日付と時刻フィールドクラス
FieldDate は DATE フィールドを実装します。FieldCreateDate は CREATEDATE を実装し、文書が作成された日付を示します。FieldPrintDate は PRINTDATE を実装し、文書が最後に印刷された日付を示します。FieldSaveDate は SAVEDATE を実装し、文書が最後に保存された日付を示します。4つすべてが Field のサブクラスであり、IFieldCodeTokenInfoProvider と IFieldWithCalendar を実装しているため、Field の GetFieldCode()、Update()、Unlink()、Remove()、および書式設定(Format)メンバーを、以下で説明する独自のカレンダー切替と共に共有します。
非グレゴリオ暦の選択
4つのクラスそれぞれは、結果をヒジュラ月暦またはヘブライ月暦で表示するための UseLunarCalendar(bool)、サカ暦のための UseSakaEraCalendar(bool)、ウム・アル=クラー暦のための UseUmAlQuraCalendar(bool)を公開しています。Update() を呼び出す前に対応するプロパティを true に設定すると、フィールドはデフォルトのグレゴリオ暦ではなくその暦システムを使用して結果を再計算します。
FieldDate のアプリケーション形式スイッチ
FieldDate はさらに UseLastFormat (bool) を公開します。このプロパティは、新しい DATE フィールドが挿入されたときに、ホスティング アプリケーションが最後に使用した形式をフィールドが使用するかどうかを制御します。FieldCreateDate、FieldPrintDate、および FieldSaveDate はこのプロパティを公開しません。
ヒントとベストプラクティス
- カレンダー スイッチ (
UseLunarCalendar、UseSakaEraCalendar、またはUseUmAlQuraCalendar) を設定し、次にフィールド上でUpdate()を呼び出します — プロパティだけを変更してもResultは再計算されません。 - 特定のフィールド インスタンスでは、カレンダー スイッチを
trueに設定するのは1つだけにしてください。複数を組み合わせると結果が曖昧になります。 - 使用
Field.Format(aFieldFormat、カバーされている フィールド結果の書式設定 guide) とこれらのカレンダー スイッチを併用して、結果に適用される数値または日時の書式設定パターンも制御します。 - 必要なセマンティクスに合ったクラスを選択してください —
FieldSaveDateとFieldPrintDateは文書に記録されたタイムスタンプを読み取りますが、FieldDateはフィールドが更新された日付を反映します。
一般的な問題
| 問題 | 原因 | 修正 |
|---|---|---|
| カレンダーの切り替えは表示結果に影響しません | プロパティを設定した後、フィールドが再計算されませんでした | UseLunarCalendar、UseSakaEraCalendar、または UseUmAlQuraCalendar を設定した後、フィールドインスタンスで Update() を呼び出してください |
UseLastFormat は FieldPrintDate または FieldSaveDate ではコンパイルできません | そのプロパティは FieldDate のみで存在します | application-format-follows の動作には FieldDate を使用するか、他のクラスで Format を明示的に設定してください |
| 結果が誤った暦システムを示しています | 同じフィールドで複数のカレンダー切替が true に設定されました | フィールドインスタンスごとに UseLunarCalendar、UseSakaEraCalendar、UseUmAlQuraCalendar のうち一つだけを設定してください |
FAQ
FieldDate と FieldCreateDate の違いは何ですか?
FieldDate は DATE フィールドを実装します(更新されるたびに現在の日付に再計算されます);FieldCreateDate は CREATEDATE を実装します(ドキュメントが作成された日付)。
日付フィールドで Hijri Lunar calendar を使用するにはどうすればよいですか?
UseLunarCalendar = true を FieldDate、FieldCreateDate、FieldPrintDate、または FieldSaveDate インスタンスに設定し、Update() を呼び出します。
4 つのクラスのうち、どれがドキュメントの最終保存時刻を追跡しますか?
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 | カレンダー対応フィールド結果のために、4つのクラスすべてが実装しているインターフェース |