Bidang Tanggal dan Waktu
Bidang Tanggal dan Waktu
Panduan ini menunjukkan cara bekerja dengan kelas bidang tanggal dan waktu yang menyadari kalender dalam Aspose.Words FOSS untuk .NET — FieldDate, FieldCreateDate, FieldPrintDate, dan FieldSaveDate — yang mengimplementasikan Word’s DATE, CREATEDATE, PRINTDATE, dan SAVEDATE field masing-masing. Setiap kelas diturunkan dari Field dan mengimplementasikan IFieldWithCalendar; untuk basis Field model objek itu sendiri (memperbarui, memutuskan tautan, menghapus, dan memformat setiap bidang), lihat the Bekerja dengan Field panduan.
Empat Kelas Bidang Tanggal dan Waktu
FieldDate mengimplementasikan bidang DATE. FieldCreateDate mengimplementasikan CREATEDATE, tanggal ketika dokumen dibuat. FieldPrintDate mengimplementasikan PRINTDATE, tanggal ketika dokumen terakhir dicetak. FieldSaveDate mengimplementasikan SAVEDATE, tanggal ketika dokumen terakhir disimpan. Keempatnya adalah subclass dari Field dan mengimplementasikan IFieldCodeTokenInfoProvider serta IFieldWithCalendar, sehingga mereka berbagi Field’s GetFieldCode(), Update(), Unlink(), Remove(), dan anggota pemformatan (Format) bersama saklar kalender mereka sendiri yang dijelaskan di bawah.
Memilih Kalender Non-Gregorian
Setiap dari keempat kelas mengekspos UseLunarCalendar (bool) untuk menampilkan hasil menggunakan kalender Hijri Lunar atau Hebrew Lunar, UseSakaEraCalendar (bool) untuk kalender Era Saka, dan UseUmAlQuraCalendar (bool) untuk kalender Um-al-Qura. Atur properti yang bersangkutan ke true sebelum memanggil Update() agar bidang menghitung ulang hasilnya menggunakan sistem kalender tersebut alih-alih kalender Gregorian default.
FieldDate’s Saklar Aplikasi-Format
FieldDate juga mengekspos UseLastFormat (bool), yang mengontrol apakah bidang menggunakan format yang terakhir digunakan oleh aplikasi host ketika bidang DATE baru disisipkan. FieldCreateDate, FieldPrintDate, dan FieldSaveDate tidak mengekspos properti ini.
Tips dan Praktik Terbaik
- Atur saklar kalender (
UseLunarCalendar,UseSakaEraCalendar, atauUseUmAlQuraCalendar) dan kemudian panggilUpdate()pada bidang — mengubah properti saja tidak menghitung ulangResult. - Atur hanya satu saklar kalender ke
truepada suatu instance bidang; menggabungkan lebih dari satu menghasilkan hasil yang ambigu. - Gunakan
Field.Format(sebuahFieldFormat, tercakup dalam Pemformatan Hasil Field panduan) bersama saklar kalender ini juga untuk mengontrol gambar pemformatan numerik atau tanggal/waktu yang diterapkan pada hasil. - Pilih kelas yang sesuai dengan semantik yang Anda butuhkan —
FieldSaveDatedanFieldPrintDatemembaca cap waktu yang tercatat dalam dokumen, sementaraFieldDatemencerminkan tanggal apa pun ketika bidang diperbarui.
Masalah Umum
| Masalah | Penyebab | Perbaikan |
|---|---|---|
| Sakelar kalender tidak berpengaruh pada hasil yang ditampilkan | Bidang tidak dihitung ulang setelah properti diatur | Panggil Update() pada instance bidang setelah mengatur UseLunarCalendar, UseSakaEraCalendar, atau UseUmAlQuraCalendar |
UseLastFormat tidak dapat dikompilasi pada FieldPrintDate atau FieldSaveDate | Properti itu hanya ada pada FieldDate | Gunakan FieldDate untuk perilaku application-format-follows, atau atur Format secara eksplisit pada kelas lainnya |
| Hasil menunjukkan sistem kalender yang salah | Lebih dari satu saklar kalender diatur ke true pada bidang yang sama | Atur hanya satu dari UseLunarCalendar, UseSakaEraCalendar, UseUmAlQuraCalendar per instance bidang |
FAQ
Apa perbedaan antara FieldDate dan FieldCreateDate?
FieldDate mengimplementasikan bidang DATE (menghitung ulang ke tanggal saat ini setiap kali diperbarui); FieldCreateDate mengimplementasikan CREATEDATE (tanggal dokumen dibuat).
Bagaimana cara membuat bidang tanggal menggunakan kalender Hijri Lunar?
Setel UseLunarCalendar = true pada instance FieldDate, FieldCreateDate, FieldPrintDate, atau FieldSaveDate, lalu panggil Update().
Kelas mana dari empat kelas yang melacak kapan dokumen terakhir disimpan?
FieldSaveDate, yang mengimplementasikan bidang SAVEDATE.
Apakah kelas-kelas ini mendukung gambar format khusus, bukan hanya saklar kalender?
Ya — masing-masing mengekspos sebuah Format properti (FieldFormat) yang diwarisi dari infrastruktur bidang dasar; lihat Pemformatan Hasil Field panduan untuk NumericFormat and DateTimeFormat.
API Reference Ringkasan
| Kelas/Metode | Deskripsi |
|---|---|
FieldDate | Mengimplementasikan field DATE |
FieldCreateDate | Mengimplementasikan field CREATEDATE |
FieldPrintDate | Menerapkan bidang PRINTDATE |
FieldSaveDate | Menerapkan bidang SAVEDATE |
UseLunarCalendar | Menampilkan hasil menggunakan kalender Hijri Lunar atau kalender Hebrew Lunar |
UseSakaEraCalendar | Menampilkan hasil menggunakan kalender Era Saka |
UseUmAlQuraCalendar | Menampilkan hasil menggunakan kalender Um-al-Qura |
FieldDate.UseLastFormat | Menggunakan format yang terakhir digunakan oleh aplikasi host untuk bidang DATE baru |
IFieldWithCalendar | Antarmuka yang diimplementasikan oleh keempat kelas untuk hasil bidang yang memperhatikan kalender |