Salesforce Apex – Μορφή ημερομηνίας

Salesforce Apex Morphe Emeromenias



Η παρακολούθηση των στοιχείων των πελατών στους Λογαριασμούς/Επαφές είναι πολύ σημαντική στη Διαχείριση Σχέσεων Πελατών (CRM). Με βάση την ημερομηνία, πραγματοποιούνται όλες οι διαδικασίες όπως η αγορά, η προσφορά και η εξυπηρέτηση. Ας δούμε πώς να δημιουργήσετε την ημερομηνία από συμβολοσειρά στο Salesforce και να μετατρέψετε την ημερομηνία σε συμβολοσειρά. Ως μέρος αυτού του σεμιναρίου, θα δούμε επίσης τις μεθόδους που εφαρμόζονται στη μορφοποιημένη ημερομηνία, όπως η προσθήκη ημερών, ετών, μηνών κ.λπ., με παραδείγματα.

Κατηγορία ημερομηνίας κορυφής

Η κλάση ημερομηνίας υποστηρίζει όλες τις μεθόδους ημερομηνίας που είναι πρωτόγονες. Χρησιμοποιεί τον χώρο ονομάτων «System». Μπορούμε να χρησιμοποιήσουμε τη μέθοδο valueOf() από αυτήν την κλάση για να μετατρέψουμε τη συμβολοσειρά σε μορφή ημερομηνίας. Μετά τη μορφοποίηση της ημερομηνίας, εφαρμόζουμε ορισμένες μεθόδους για να προσθέσουμε τις ημέρες, μήνες, έτη κ.λπ., σε αυτήν τη μορφοποιημένη ημερομηνία χρησιμοποιώντας ορισμένες μεθόδους που είναι επίσης διαθέσιμες σε αυτήν την κατηγορία ημερομηνιών.







Αρχικά, θα δούμε πώς να μετατρέψουμε τη συμβολοσειρά σε ημερομηνία χρησιμοποιώντας τη μέθοδο valueOf() στο Salesforce Apex.



Date.valueOf()

Η valueOf() στο Apex είναι διαθέσιμη στην κλάση 'Date' που παίρνει τη συμβολοσειρά ως όρισμα που μετατρέπει την καθορισμένη συμβολοσειρά στη μορφή ημερομηνίας. Η συμβολοσειρά εισόδου (παράμετρος) περιλαμβάνει τρία χαρακτηριστικά – έτος, μήνας και ημέρα. Και τα τρία αυτά συνδυάζονται/συνενώνονται και περνούν στη μέθοδο.



Σύνταξη: ValueOf()

Όπως ήδη αναφέρθηκε, πρέπει να δηλώσουμε μια μεταβλητή της κλάσης 'Date' και να περάσουμε τη συμβολοσειρά σε αυτήν.





Date date_variable= date.valueOf(string_date_format);

Παράδειγμα:

Βήμα 1:

Ας έχουμε μια συμβολοσειρά που περιέχει το 'Έτος-Μήνας-Ημέρα'.

// Δηλώστε έτος, μήνα και ημέρα ένα προς ένα

Έτος συμβολοσειράς = '2023';

Μήνας συμβολοσειράς = '4';

String Day = '5';

// Συνδέστε τα όλα σε μια συμβολοσειρά

String_type = Έτος + '-' + Μήνας + '-' + Ημέρα;

system.debug(string_type);

Παραγωγή:



Βήμα 2:

Τώρα, μετατρέψτε την προηγούμενη συμβολοσειρά 'Date' σε 'Date' χρησιμοποιώντας τη μέθοδο valueOf() από την κλάση Apex 'Date'.

// Μετατροπή συμβολοσειράς-Ημερομηνία σε Ημερομηνία

Date converted_date = date.valueOf(string_type);

system.debug(converted_date);

Παραγωγή:

Μπορούμε να δούμε ότι μετά τη μετατροπή σε 'Ημερομηνία', επιστρέφει αυτόματα την ημερομηνία στη μορφή DateTime. Δεν θα λάβει υπόψη την ώρα (Ώρες:Λεπτά:Δευτερόλεπτα) ακόμα κι αν τις μεταβιβάσετε στη μέθοδο valueOf(). Η μορφή που επιστρέφεται είναι ΕΕΕΕ-ΜΜ-ΗΗ ΩΩ:ΜΛ:ΔΔ.

Μετατρέψτε την ημερομηνία σε συμβολοσειρά

Υπάρχουν δύο τρόποι για να μετατρέψετε το 'Date' σε 'String'. Ένας τρόπος που υποστηρίζεται από το Apex είναι η χρήση της μεθόδου format(). Ο άλλος τρόπος είναι η μη αυτόματη εξαγωγή των χαρακτηριστικών 'Ημερομηνία' (έτος, μήνας και ημέρα) και η συνένωση τους σε συμβολοσειρά. Ας τα δούμε ένα προς ένα.

1. Μορφή()

Η μέθοδος format() είναι διαθέσιμη στην κλάση 'Date' στο Apex, η οποία μετατρέπει το 'Date' στη συμβολοσειρά στη μορφή 'M/D/YYYY'. Μπορούμε επίσης να περάσουμε την καθορισμένη μορφή ως παράμετρο σε αυτήν τη μέθοδο. Η καθορισμένη μορφή είναι η προεπιλεγμένη μορφή.

Σύνταξη:

input_date.format('format_type')

Παράδειγμα:

Ας εξετάσουμε το προηγούμενο παράδειγμα και ας μετατρέψουμε ξανά το 'Date' σε 'String' χρησιμοποιώντας τη μέθοδο format(). Δεν παρέχουμε κάποια συγκεκριμένη μορφή στη μέθοδο format().

// Δηλώστε έτος, μήνα και ημέρα ένα προς ένα

Έτος συμβολοσειράς = '2023';

Μήνας συμβολοσειράς = '4';

String Day = '5';

// Συνδέστε τα όλα σε μια συμβολοσειρά

String_type = Έτος + '-' + Μήνας + '-' + Ημέρα;

// Μετατροπή συμβολοσειράς-Ημερομηνία σε Ημερομηνία

Date converted_date = date.valueOf(string_type);

system.debug(converted_date);

// μορφή()

system.debug(converted_date.format());

Παραγωγή:

2. Χρήση της μεθόδου Date Class

Σε αυτό το σενάριο, εξάγουμε το έτος, τον μήνα και την ημέρα ξεχωριστά από την 'Ημερομηνία' χρησιμοποιώντας τις διαθέσιμες μεθόδους στην κλάση Apex 'Date'. Στη συνέχεια, ενώνουμε αυτά τα τρία για να επιστρέψουμε την 'Ημερομηνία' σε μορφή 'String'.

  1. ημέρα() – Αυτή η μέθοδος χρησιμοποιείται για την εξαγωγή της ημερομηνίας από την 'Ημερομηνία'. Επιστρέφει τον ακέραιο που καθορίζει την ημερομηνία.
  2. μήνας() – Αυτή η μέθοδος χρησιμοποιείται για την εξαγωγή του μήνα από την «Ημερομηνία». Επιστρέφει τον ακέραιο που καθορίζει τον αριθμό του μήνα. Μπορούμε να αναφέρουμε τον Ιανουάριο ως 1, τον Φεβρουάριο ως 2…. Δεκεμβρίου ως 12.
  3. έτος() – Αυτή η μέθοδος χρησιμοποιείται για την εξαγωγή του έτους από την «Ημερομηνία». Επιστρέφει το έτος σε τετραψήφια μορφή.

Σύνταξη:

input_date.year() + '-' + input_date.month() + '-' + input_date.day()

Παράδειγμα:

Μετατρέψτε ξανά την 'Ημερομηνία' σε 'Συμβολοσειρά' στη μορφή 'ΕΕΕΕ-Μ-Δ'.

// Δηλώστε έτος, μήνα και ημέρα ένα προς ένα

Έτος συμβολοσειράς = '2023';

Μήνας συμβολοσειράς = '4';

String Day = '5';

// Συνδέστε τα όλα σε μια συμβολοσειρά

String_type = Έτος + '-' + Μήνας + '-' + Ημέρα;

// Μετατροπή συμβολοσειράς-Ημερομηνία σε Ημερομηνία

Date converted_date = date.valueOf(string_type);

system.debug(converted_date);

// Μετατροπή ημερομηνίας σε συμβολοσειρά

system.debug(converted_date.year() + '-' + converted_date.month() + '-' + converted_date.day());

Παραγωγή:

Πρακτικά παραδείγματα:

Ας δούμε πώς να ενημερώσετε την 'Ημερομηνία', όπως την προσθήκη ημερών, ετών και μηνών στην υπάρχουσα ημερομηνία στα αντικείμενα Salesforce. Και οι τρεις μέθοδοι λαμβάνουν τον ακέραιο 'n' ως όρισμα.

1. addDays()

Για να προσθέσετε ημέρες στην υπάρχουσα ημερομηνία, το Apex υποστηρίζει τη μέθοδο addDays() που είναι διαθέσιμη στην κλάση 'Date'.

2. addMonths()

Για να προσθέσετε μήνες στην υπάρχουσα ημερομηνία, το Apex υποστηρίζει τη μέθοδο addMonths() που είναι διαθέσιμη στην κλάση 'Date'.

3. addYears()

Για να προσθέσετε έτη στην υπάρχουσα ημερομηνία, το Apex υποστηρίζει τη μέθοδο addYears() που είναι διαθέσιμη στην κλάση 'Date'.

Σύνταξη:

Ας δούμε τη σύνταξη για αυτές τις τρεις μεθόδους. Εδώ, το 'n' προσδιορίζει την ακέραια τιμή.

  • input_Date.addDays(n)
  • input_Date.addMonths(n)
  • input_Date.addYears(n)

Πριν πάτε στο παράδειγμα, σκεφτείτε τα εξής:

  1. Συνδεθείτε στο Salesforce και μεταβείτε στο 'App Launcher' και αναζητήστε 'Campaign' στην καρτέλα. Εδώ, εισάγουμε το «Όνομα καμπάνιας» και «Ημερομηνία λήξης».

  1. Επιλέξτε 'Καμπάνιες' και κάντε κλικ στο 'Νέο'.

  1. Εμφανίζεται ένα αναδυόμενο παράθυρο για την εισαγωγή των δεδομένων στην καμπάνια. Προσθέστε 'Linux Hint Posts' κάτω από το 'Campaign Name' και ορίστε την 'End Date' ως 4/5/2023. Στη συνέχεια, κάντε κλικ στο «Αποθήκευση».

Είμαστε έτοιμοι με το ρεκόρ. (Τύπος – Συνδιάσκεψη και Κατάσταση – Το προγραμματισμένο θα έρθει αυτόματα. Αφήστε το). Ας ανοίξουμε το ανώνυμο παράθυρο στην κονσόλα προγραμματιστή.

Παράδειγμα 1:

Ας χρησιμοποιήσουμε τη μέθοδο addDays() για να προσθέσουμε 10 ημέρες στην υπάρχουσα 'Ημερομηνία λήξης' στο αντικείμενο 'Campaign'.

  1. Για να γίνει αυτό, πρέπει πρώτα να χρησιμοποιήσουμε το SOQL Query για να λάβουμε την εγγραφή από το αντικείμενο 'Campaign' και να αποθηκεύσουμε αυτήν την εγγραφή σε ένα αντικείμενο 'List'.
  2. Στη συνέχεια, χρησιμοποιούμε τον βρόχο «για» για να επαναλάβουμε τη λίστα και χρησιμοποιούμε τη μέθοδο addDays() για να προσθέσουμε 10 ημέρες στην «Ημερομηνία λήξης».
  3. Τέλος, χρησιμοποιούμε τη δήλωση 'ενημέρωση DML' για να ενημερώσουμε την 'Ημερομηνία λήξης' στο αντικείμενο 'Καμπάνια'.
// Επιστροφή ονόματος και ημερομηνίας λήξης από την καμπάνια χρησιμοποιώντας SOQL

List query1 = [ΕΠΙΛΕΞΤΕ Όνομα,Ημερομηνία λήξης ΑΠΟ Καμπάνια WHERE Name = 'Linux Hint Posts'];

// Προσθέστε 10 ημέρες στην Ημερομηνία λήξης χρησιμοποιώντας τη μέθοδο addDays().

for(Campaign i: query1){

i.EndDate = i.EndDate.addDays(10);

}

// Χρησιμοποιήστε την ενημέρωση DML για να ενημερώσετε την Ημερομηνία λήξης

Ενημέρωση ερωτήματος1;

system.debug(query1);

Παραγωγή:

Η προηγούμενη 'Ημερομηνία λήξης' είναι η 5η Απριλίου. Μετά την προσθήκη 10 ημερών σε αυτό, η 'Ημερομηνία λήξης' είναι πλέον η 15η Απριλίου.

Μπορούμε επίσης να ελέγξουμε στην καρτέλα 'Καμπάνια'. Μετακινηθείτε πίσω και ανανεώστε τη σελίδα. Μπορείτε να δείτε ότι η 'Ημερομηνία λήξης' ενημερώνεται.

Παράδειγμα 2:

Ας χρησιμοποιήσουμε τη μέθοδο addMonths() για να προσθέσουμε 3 μήνες στην υπάρχουσα 'Ημερομηνία λήξης'.

// Επιστροφή ονόματος και ημερομηνίας λήξης από την καμπάνια χρησιμοποιώντας SOQL

List query1 = [ΕΠΙΛΕΞΤΕ Όνομα,Ημερομηνία λήξης ΑΠΟ Καμπάνια WHERE Name = 'Linux Hint Posts'];

system.debug('Actual: '+query1);

// Προσθέστε 3 μήνες στην Ημερομηνία λήξης χρησιμοποιώντας τη μέθοδο addMonths().

for(Campaign i: query1){

i.EndDate = i.EndDate.addMonths(3);

}

// Χρησιμοποιήστε την ενημέρωση DML για να ενημερώσετε την Ημερομηνία λήξης

Ενημέρωση ερωτήματος1;

system.debug('Ενημερώθηκε: '+query1);

Παραγωγή:

Ο προηγούμενος μήνας στην «Ημερομηνία λήξης» είναι ο Απρίλιος. Μετά την προσθήκη 3 μηνών, τώρα είναι Ιούλιος.

Παράδειγμα 3:

Ας χρησιμοποιήσουμε τη μέθοδο addYears() για να προσθέσουμε 3 χρόνια στην υπάρχουσα 'Ημερομηνία λήξης'.

// Επιστροφή ονόματος και ημερομηνίας λήξης από την καμπάνια χρησιμοποιώντας SOQL

List query1 = [ΕΠΙΛΕΞΤΕ Όνομα,Ημερομηνία λήξης ΑΠΟ Καμπάνια WHERE Name = 'Linux Hint Posts'];

system.debug('Actual: '+query1);

// Προσθήκη 3 ετών στην Ημερομηνία λήξης χρησιμοποιώντας τη μέθοδο addYears().

for(Campaign i: query1){

i.EndDate = i.EndDate.addYears(3);

}

// Χρησιμοποιήστε την ενημέρωση DML για να ενημερώσετε την Ημερομηνία λήξης

Ενημέρωση ερωτήματος1;

system.debug('Ενημερώθηκε: '+query1);

Παραγωγή:

Μετά την προσθήκη 3 ετών στην 'Ημερομηνία λήξης', το ενημερωμένο έτος είναι το 2026.

συμπέρασμα

Η μορφοποίηση της ημερομηνίας στο Salesforce Apex είναι αρκετά απλή. Ως μέρος αυτού του σεμιναρίου, μάθαμε πώς να μετατρέπουμε τη μορφή 'Date' από τη μορφή 'String' σε 'Date' χρησιμοποιώντας τη μέθοδο valueOf() που είναι διαθέσιμη στην κλάση Apex 'Date'. Εάν θέλετε να επαναφέρετε την ημερομηνία σε συμβολοσειρά, χρησιμοποιούμε τα χαρακτηριστικά format() και ημερομηνία όπως day(), month() και year(). Τέλος, ολοκληρώσαμε αυτόν τον οδηγό συζητώντας τη λειτουργία DML στο αντικείμενο Salesforce 'Campaign' για ενημέρωση της 'Ημερομηνίας λήξης' χρησιμοποιώντας τις μεθόδους addDays(), addMonths() και addYears() με ξεχωριστά παραδείγματα.