Πεδία ημερομηνίας και ώρας
Πεδία Ημερομηνίας και Ώρας
Αυτός ο οδηγός δείχνει πώς να εργάζεστε με τις κλάσεις πεδίων ημερομηνίας και ώρας με επίγνωση του ημερολογίου στο Aspose.Words FOSS για .NET — FieldDate, FieldCreateDate, FieldPrintDate, και FieldSaveDate — που υλοποιούν το Word’s DATE, CREATEDATE, PRINTDATE, και SAVEDATE πεδία αντίστοιχα. Κάθε κλάση κληρονομεί από Field και υλοποιεί IFieldWithCalendar; για τη βασική Field μοντέλο αντικειμένου αυτό (ενημέρωση, αποσύνδεση, αφαίρεση και μορφοποίηση οποιουδήποτε πεδίου), δείτε το Εργασία με Πεδία οδηγός.
Οι τέσσερις κλάσεις πεδίων ημερομηνίας και ώρας
FieldDate υλοποιεί το πεδίο DATE. FieldCreateDate υλοποιεί το CREATEDATE, τη ημερομηνία δημιουργίας του εγγράφου. FieldPrintDate υλοποιεί το PRINTDATE, τη ημερομηνία τελευταίας εκτύπωσης του εγγράφου. FieldSaveDate υλοποιεί το SAVEDATE, τη ημερομηνία τελευταίας αποθήκευσης του εγγράφου. Όλα τα τέσσερα είναι υποκλάσεις του Field και υλοποιούν τα IFieldCodeTokenInfoProvider και IFieldWithCalendar, έτσι μοιράζονται τα GetFieldCode(), Update(), Unlink(), Remove() του Field, καθώς και τα μέλη μορφοποίησης (Format) μαζί με τις δικές τους εναλλάκτες ημερολογίου που περιγράφονται παρακάτω.
Επιλογή μη Γρηγοριανού ημερολογίου
Κάθε μία από τις τέσσερις κλάσεις εκθέτει το UseLunarCalendar (bool) για την απόδοση του αποτελέσματος χρησιμοποιώντας το Ητζριτικό σεληνιακό ή το Εβραϊκό σεληνιακό ημερολόγιο, το UseSakaEraCalendar (bool) για το ημερολόγιο της Εποχής Σάκα, και το UseUmAlQuraCalendar (bool) για το ημερολόγιο Um-al-Qura. Ορίστε την αντίστοιχη ιδιότητα σε true πριν καλέσετε το Update() ώστε το πεδίο να υπολογίσει ξανά το αποτέλεσμα χρησιμοποιώντας αυτό το σύστημα ημερολογίου αντί του προεπιλεγμένου Γρηγοριανού ημερολογίου.
Διακόπτης Εφαρμογή-Μορφή του FieldDate
FieldDate εκθέτει επίσης το UseLastFormat (bool), το οποίο ελέγχει εάν το πεδίο χρησιμοποιεί μια μορφή που χρησιμοποιήθηκε τελευταία από την εφαρμογή που το φιλοξενεί όταν εισάγεται ένα νέο DATE πεδίο. Τα FieldCreateDate, FieldPrintDate και FieldSaveDate δεν εκθέτουν αυτήν την ιδιότητα.
Συμβουλές και Καλές Πρακτικές
- Ορίστε έναν διακόπτη ημερολογίου (
UseLunarCalendar,UseSakaEraCalendarήUseUmAlQuraCalendar) και στη συνέχεια καλέστε τοUpdate()στο πεδίο — η αλλαγή μόνο της ιδιότητας δεν επαναϋπολογίζει τοResult. - Ορίστε μόνο έναν διακόπτη ημερολογίου στο
trueσε ένα συγκεκριμένο στιγμιότυπο πεδίου· ο συνδυασμός περισσότερων από έναν δημιουργεί ασαφή αποτέλεσμα. - Χρήση
Field.Format(αFieldFormat, καλυμμένο στο Μορφοποίηση Αποτελεσμάτων Πεδίου οδηγός) μαζί με αυτούς τους διακόπτες ημερολογίου για να ελέγχετε επίσης την αριθμητική ή τη μορφοποίηση ημερομηνίας/ώρας που εφαρμόζεται στο αποτέλεσμα. - Επιλέξτε την κλάση που ταιριάζει στη σημασιολογία που χρειάζεστε — τα
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 | Απεικονίζει το αποτέλεσμα χρησιμοποιώντας το ημερολόγιο Saka Era |
UseUmAlQuraCalendar | Απεικονίζει το αποτέλεσμα χρησιμοποιώντας το ημερολόγιο Um-al-Qura |
FieldDate.UseLastFormat | Χρησιμοποιεί μια μορφή που χρησιμοποιήθηκε τελευταία από την εφαρμογή φιλοξενίας για ένα νέο πεδίο DATE |
IFieldWithCalendar | Διεπαφή που υλοποιείται από όλες τις τέσσερις κλάσεις για αποτελέσματα πεδίων με ευαισθησία στο ημερολόγιο |