Sporing av detaljene til kunder i kontoer/kontakter er svært viktig i Customer Relationship Management (CRM). Basert på datoen skjer alle prosesser som kjøp, tilbud og service. La oss se på hvordan du oppretter datoen fra streng i Salesforce og konverterer datoen til streng. Som en del av denne opplæringen vil vi også se metodene som brukes på den formaterte datoen som å legge til dager, år, måneder osv., med eksempler.
Apex-datoklasse
Datoklassen støtter alle datometoder som er primitive. Den bruker 'System'-navneområdet. Vi kan bruke valueOf()-metoden fra denne klassen for å konvertere strengen til et datoformat. Etter formatering av datoen bruker vi noen metoder for å legge til dager, måneder, år osv. til denne formaterte datoen ved å bruke noen metoder som også er tilgjengelige i denne datoklassen.
Først vil vi se hvordan du konverterer strengen til dato ved å bruke valueOf()-metoden i Salesforce Apex.
Date.valueOf()
valueOf() i Apex er tilgjengelig i klassen 'Date' som tar strengen som et argument som konverterer den angitte strengen til datoformatet. Inndatastrengen (parameteren) inkluderer tre attributter – år, måned og dag. Alle disse tre er kombinert/sammenkoblet og videreført til metoden.
Syntaks: ValueOf()
Som allerede nevnt, må vi deklarere en variabel av klassen 'Date' og sende strengen til den.
Dato date_variable= date.valueOf(string_date_format);
Eksempel:
Trinn 1:
La oss ha en streng som inneholder 'År-måned-dag'.
// Erklær år, måned og dag én etter énStrengår = '2023';
Strengmåned = '4';
Strengedag = '5';
// Slå sammen alle sammen til en streng
String string_type = År + '-' + Måned + '-' + Dag;
system.debug(streng_type);
Produksjon:
Steg 2:
Konverter nå den forrige 'Date'-strengen til 'Date' ved å bruke valueOf()-metoden fra Apex-klassen 'Date'.
// Konverter streng-dato til datoDato converted_date = date.valueOf(string_type);
system.debug(konvertert_dato);
Produksjon:
Vi kan se at etter konvertering til 'Dato', returnerer den automatisk datoen i DateTime-formatet. Den vil ikke vurdere tiden (timer: minutter: sekunder) selv om du sender disse til valueOf()-metoden. Det returnerte formatet er ÅÅÅÅ-MM-DD TT:MM:SS.
Konverter datoen til streng
Det er to måter å konvertere 'Dato' til 'String'. En måte som støttes av Apex er å bruke format()-metoden. Den andre måten er å manuelt trekke ut 'Dato'-attributtene (år, måned og dag) og sette dem sammen til en streng. La oss se på dem én etter én.
1. Format()
Format()-metoden er tilgjengelig i 'Date'-klassen i Apex som konverterer 'Date' til strengen i 'M/D/YYYY'-formatet. Vi kan også sende det angitte formatet som en parameter til denne metoden. Det angitte formatet er standardformatet.
Syntaks:
input_date.format(“format_type”)Eksempel:
La oss vurdere det forrige eksemplet og konvertere tilbake 'Dato' til 'String' ved å bruke format()-metoden. Vi gir ikke noe spesifikt format til format()-metoden.
// Erklær år, måned og dag én etter énStrengår = '2023';
Strengmåned = '4';
Strengedag = '5';
// Slå sammen alle sammen til en streng
String string_type = År + '-' + Måned + '-' + Dag;
// Konverter streng-dato til dato
Dato converted_date = date.valueOf(string_type);
system.debug(konvertert_dato);
// format()
system.debug(konvertert_dato.format());
Produksjon:
2. Bruke datoklassemetoden
I dette scenariet trekker vi ut år, måned og dag separat fra 'Dato' ved å bruke de tilgjengelige metodene i Apex 'Date'-klassen. Deretter setter vi sammen disse tre for å returnere 'Dato' i 'String' -format.
- dag() – Denne metoden brukes til å trekke ut datoen fra 'Datoen'. Det returnerer heltallet som spesifiserer datoen.
- måned() – Denne metoden brukes til å trekke ut måneden fra 'Datoen'. Den returnerer heltallet som spesifiserer månedsnummeret. Vi kan referere til januar som 1, februar som 2…. desember som 12.
- år() – Denne metoden brukes til å trekke ut året fra 'Datoen'. Den returnerer året i et firesifret format.
Syntaks:
input_date.year() + '-' + input_date.month() + '-' + input_date.day()Eksempel:
Konverter tilbake 'Dato' til 'String' i 'ÅÅÅÅ-M-D'-formatet.
// Erklær år, måned og dag én etter énStrengår = '2023';
Strengmåned = '4';
Strengedag = '5';
// Slå sammen alle sammen til en streng
String string_type = År + '-' + Måned + '-' + Dag;
// Konverter streng-dato til dato
Dato converted_date = date.valueOf(string_type);
system.debug(konvertert_dato);
// Konverter dato til streng
system.debug(converted_date.year() + '-' + converted_date.month() + '-' + converted_date.day());
Produksjon:
Praktiske eksempler:
La oss se hvordan du oppdaterer 'Datoen' som å legge til dager, år og måneder til den eksisterende datoen i Salesforce-objektene. Alle tre metodene tar 'n' heltall som et argument.
1. addDays()
For å legge til dager til den eksisterende datoen, støtter Apex metoden addDays() som er tilgjengelig i klassen 'Date'.
2. addMonths()
For å legge til måneder til den eksisterende datoen, støtter Apex metoden addMonths() som er tilgjengelig i klassen 'Date'.
3. addYears()
For å legge til år til den eksisterende datoen, støtter Apex metoden addYears() som er tilgjengelig i klassen 'Date'.
Syntaks:
La oss se på syntaksen for disse tre metodene. Her angir 'n' heltallsverdien.
- input_Date.addDays(n)
- input_Date.addMonths(n)
- input_Date.addYears(n)
Før du går til eksemplet, vurder følgende:
- Logg på Salesforce og gå til «Appstarter» og søk etter «Kampanje» i fanen. Her setter vi inn 'Kampanjenavn' og 'Sluttdato'.
- Velg 'Kampanjer' og klikk på 'Ny'.
- En popup vises for å sette inn dataene i kampanjen. Legg til «Linux Hint Posts» under «Kampanjenavn» og angi «Sluttdato» som 4/5/2023. Klikk deretter på 'Lagre'.
Vi er klare med rekorden. (Type – Konferanse og Status – Planlagt kommer automatisk. La det stå). La oss åpne det anonyme vinduet i utviklerkonsollen.
Eksempel 1:
La oss bruke addDays()-metoden for å legge til 10 dager til den eksisterende 'Sluttdatoen' i 'Campaign'-objektet.
- For å gjøre dette må vi først bruke SOQL-spørringen for å hente posten fra 'Campaign'-objektet og lagre denne posten i et 'List'-objekt.
- Deretter bruker vi 'for'-løkken for å iterere listen og bruker addDays()-metoden for å legge til 10 dager til 'sluttdatoen'.
- Til slutt bruker vi 'update DML'-setningen for å oppdatere 'End Date' i 'Campaign'-objektet.
List
// Legg til 10 dager til EndDate ved hjelp av addDays()-metoden
for(Campaign i: query1){
i.EndDate = i.EndDate.addDays(10);
}
// Bruk oppdatering DML for å oppdatere sluttdatoen
oppdater spørring1;
system.debug(spørring1);
Produksjon:
Den forrige 'sluttdatoen' er 5. april. Etter å ha lagt til 10 dager, er 'sluttdatoen' nå 15. april.
Vi kan også sjekke i «Kampanje»-fanen. Gå tilbake og oppdater siden. Du kan se at 'Sluttdatoen' er oppdatert.
Eksempel 2:
La oss bruke addMonths()-metoden for å legge til 3 måneder til den eksisterende 'sluttdatoen'.
// Returner navn og sluttdato fra kampanjen med SOQLList
system.debug('Faktisk: '+spørring1);
// Legg til 3 måneder til EndDate ved hjelp av addMonths()-metoden
for(Campaign i: query1){
i.EndDate = i.EndDate.addMonths(3);
}
// Bruk oppdatering DML for å oppdatere sluttdatoen
oppdater spørring1;
system.debug('Oppdatert: '+query1);
Produksjon:
Forrige måned i 'Sluttdato' er april. Etter å ha lagt til 3 måneder, er det nå juli.
Eksempel 3:
La oss bruke addYears()-metoden for å legge til 3 år til den eksisterende 'sluttdatoen'.
// Returner navn og sluttdato fra kampanjen med SOQLList
system.debug('Faktisk: '+spørring1);
// Legg til 3 år til EndDate ved å bruke addYears()-metoden
for(Campaign i: query1){
i.EndDate = i.EndDate.addYears(3);
}
// Bruk oppdatering DML for å oppdatere sluttdatoen
oppdater spørring1;
system.debug('Oppdatert: '+query1);
Produksjon:
Etter å ha lagt til 3 år til 'sluttdatoen', er det oppdaterte året 2026.
Konklusjon
Formatering av datoen i Salesforce Apex er ganske enkelt. Som en del av denne opplæringen lærte vi hvordan du konverterer 'Date' fra 'String'-format til 'Date' ved å bruke valueOf()-metoden som er tilgjengelig i Apex 'Date' Class. Hvis du vil konvertere tilbake datoen til streng, bruker vi format() og date-attributtene som day(), month() og year(). Til slutt avsluttet vi denne veiledningen med å diskutere DML-operasjonen på Salesforce 'Campaign'-objektet for å oppdatere 'End Date' ved hjelp av addDays(), addMonths() og addYears()-metodene med separate eksempler.