Salesforce Apex – Datoformat

Salesforce Apex Datoformat



Sporing af detaljer om kunder i konti/kontakter er meget vigtigt i Customer Relationship Management (CRM). Baseret på datoen sker alle processer som køb, tilbud og service. Lad os se på, hvordan du opretter datoen fra streng i Salesforce og konverterer datoen til streng. Som en del af denne vejledning vil vi også se de metoder, der anvendes på den formaterede dato, såsom tilføjelse af dage, år, måneder osv., med eksempler.

Apex-datoklasse

Dato klasse understøtter alle datometoder, som er primitive. Det bruger 'System'-navnerummet. Vi kan bruge metoden valueOf() fra denne klasse til at konvertere strengen til et datoformat. Efter formatering af datoen anvender vi nogle metoder til at tilføje dage, måneder, år osv. til denne formaterede dato ved hjælp af nogle metoder, der også er tilgængelige i denne datoklasse.







Først vil vi se, hvordan man konverterer strengen til dato ved hjælp af valueOf()-metoden i Salesforce Apex.



Date.valueOf()

valueOf() i Apex er tilgængelig i klassen 'Date', som tager strengen som et argument, der konverterer den angivne streng til datoformatet. Inputstrengen (parameter) omfatter tre attributter - år, måned og dag. Alle disse tre kombineres/sammenkædes og videregives til metoden.



Syntaks: ValueOf()

Som allerede nævnt skal vi erklære en variabel af klassen 'Date' og sende strengen til den.





Dato date_variable= date.valueOf(string_date_format);

Eksempel:

Trin 1:

Lad os have en streng, der holder 'År-måned-dag'.

// Erklær år, måned og dag én efter én

Strengår = '2023';

Streng måned = '4';

Strengdag = '5';

// Sammenkæde dem alle i en streng

String string_type = År + '-' + Måned + '-' + Dag;

system.debug(streng_type);

Produktion:



Trin 2:

Konverter nu den forrige 'Date'-streng til 'Date' ved hjælp af valueOf()-metoden fra Apex-klassen 'Date'.

// Konverter streng-dato til dato

Dato converted_date = dato.værdiOf(streng_type);

system.debug(konverteret_dato);

Produktion:

Vi kan se, at efter konvertering til 'Dato', returnerer den automatisk datoen i DateTime-formatet. Det vil ikke tage tiden i betragtning (timer: minutter: sekunder), selvom du overfører disse til valueOf()-metoden. Det returnerede format er ÅÅÅÅ-MM-DD TT:MM:SS.

Konverter datoen til streng

Der er to måder at konvertere 'Dato' til 'String'. En måde, der understøttes af Apex, er at bruge format()-metoden. Den anden måde er manuelt at udtrække 'Dato'-attributterne (år, måned og dag) og sammenkæde dem i en streng. Lad os se på dem én efter én.

1. Format()

Format()-metoden er tilgængelig i 'Date'-klassen i Apex, som konverterer 'Date' til strengen i 'M/D/YYYY'-formatet. Vi kan også overføre det angivne format som en parameter til denne metode. Det angivne format er standardformatet.

Syntaks:

input_date.format(“format_type”)

Eksempel:

Lad os overveje det forrige eksempel og konvertere 'Datoen' tilbage til 'String' ved hjælp af format()-metoden. Vi leverer ikke noget specifikt format til format()-metoden.

// Erklær år, måned og dag én efter én

Strengår = '2023';

Streng måned = '4';

Strengdag = '5';

// Sammenkæde dem alle i en streng

String string_type = År + '-' + Måned + '-' + Dag;

// Konverter streng-dato til dato

Dato converted_date = dato.værdiOf(streng_type);

system.debug(konverteret_dato);

// format()

system.debug(konverteret_dato.format());

Produktion:

2. Brug af datoklassemetoden

I dette scenarie udtrækker vi år, måned og dag separat fra 'Datoen' ved hjælp af de tilgængelige metoder i Apex-klassen 'Dato'. Dernæst sammenkæder vi disse tre for at returnere 'Datoen' i 'String' -format.

  1. dag() – Denne metode bruges til at udtrække datoen fra 'Datoen'. Det returnerer det heltal, der angiver datoen.
  2. måned() – Denne metode bruges til at udtrække måneden fra 'Datoen'. Det returnerer det heltal, der angiver månedsnummeret. Vi kan referere til januar som 1, februar som 2…. december som 12.
  3. år() – Denne metode bruges til at udtrække året fra 'Datoen'. Det returnerer året i et firecifret format.

Syntaks:

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

Eksempel:

Konverter 'Dato' tilbage til 'String' i formatet 'ÅÅÅÅ-M-D'.

// Erklær år, måned og dag én efter én

Strengår = '2023';

Streng måned = '4';

Strengdag = '5';

// Sammenkæde dem alle i en streng

String string_type = År + '-' + Måned + '-' + Dag;

// Konverter streng-dato til dato

Dato converted_date = dato.værdiOf(streng_type);

system.debug(konverteret_dato);

// Konverter dato til streng

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

Produktion:

Praktiske eksempler:

Lad os se, hvordan du opdaterer 'Datoen', som f.eks. at tilføje dage, år og måneder til den eksisterende dato i Salesforce-objekterne. Alle tre metoder tager 'n' heltal som et argument.

1. addDays()

For at tilføje dage til den eksisterende dato, understøtter Apex metoden addDays() som er tilgængelig i klassen 'Date'.

2. addMonths()

For at tilføje måneder til den eksisterende dato, understøtter Apex metoden addMonths() som er tilgængelig i klassen 'Date'.

3. addYears()

For at tilføje år til den eksisterende dato, understøtter Apex metoden addYears() som er tilgængelig i klassen 'Date'.

Syntaks:

Lad os se på syntaksen for disse tre metoder. Her angiver 'n' heltalsværdien.

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

Inden du går til eksemplet, skal du overveje følgende:

  1. Log ind på Salesforce og gå til 'App Launcher' og søg efter 'Kampagne' på fanen. Her indsætter vi 'Kampagnenavn' og 'Slutdato'.

  1. Vælg 'Kampagner' og klik på 'Ny'.

  1. Der vises en pop op for at indsætte dataene i kampagnen. Tilføj 'Linux Hint Posts' under 'Kampagnenavnet' og indstil 'Slutdatoen' til 4/5/2023. Klik derefter på 'Gem'.

Vi er klar med rekorden. (Type – Konference og Status – Planlagt kommer automatisk. Lad være). Lad os åbne det anonyme vindue i udviklerkonsollen.

Eksempel 1:

Lad os bruge addDays()-metoden til at tilføje 10 dage til den eksisterende 'Slutdato' i 'Campaign'-objektet.

  1. For at gøre dette skal vi først bruge SOQL-forespørgslen til at hente posten fra 'Campaign'-objektet og gemme denne post i et 'List'-objekt.
  2. Dernæst bruger vi 'for'-løkken til at gentage listen og bruger addDays()-metoden til at tilføje 10 dage til 'Slutdatoen'.
  3. Til sidst bruger vi 'update DML'-sætningen til at opdatere 'Slutdatoen' i 'Kampagne'-objektet.
// Returner navn og slutdato fra kampagnen ved hjælp af SOQL

List query1 = [SELECT Name, EndDate FROM Campaign WHERE Name = 'Linux Hint Posts'];

// Tilføj 10 dage til EndDate ved hjælp af addDays() metoden

for(Campaign i: query1){

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

}

// Brug update DML til at opdatere Slutdatoen

opdatere forespørgsel1;

system.debug(forespørgsel1);

Produktion:

Den tidligere 'Slutdato' er den 5. april. Efter at have tilføjet 10 dage til det, er 'Slutdatoen' nu den 15. april.

Vi kan også tjekke under fanen 'Kampagne'. Flyt tilbage og opdater siden. Du kan se, at 'Slutdatoen' er opdateret.

Eksempel 2:

Lad os bruge metoden addMonths() til at tilføje 3 måneder til den eksisterende 'Slutdato'.

// Returner navn og slutdato fra kampagnen ved hjælp af SOQL

List query1 = [SELECT Name, EndDate FROM Campaign WHERE Name = 'Linux Hint Posts'];

system.debug('Faktisk: '+forespørgsel1);

// Tilføj 3 måneder til EndDate ved hjælp af addMonths() metoden

for(Campaign i: query1){

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

}

// Brug update DML til at opdatere Slutdatoen

opdatere forespørgsel1;

system.debug('Opdateret: '+forespørgsel1);

Produktion:

Den foregående måned i 'Slutdatoen' er april. Efter at have tilføjet 3 måneder, er det nu juli.

Eksempel 3:

Lad os bruge metoden addYears() til at tilføje 3 år til den eksisterende 'Slutdato'.

// Returner navn og slutdato fra kampagnen ved hjælp af SOQL

List query1 = [SELECT Name, EndDate FROM Campaign WHERE Name = 'Linux Hint Posts'];

system.debug('Faktisk: '+forespørgsel1);

// Tilføj 3 år til EndDate ved hjælp af addYears() metoden

for(Campaign i: query1){

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

}

// Brug update DML til at opdatere Slutdatoen

opdatere forespørgsel1;

system.debug('Opdateret: '+forespørgsel1);

Produktion:

Efter at have tilføjet 3 år til 'Slutdatoen', er det opdaterede år 2026.

Konklusion

Formatering af datoen i Salesforce Apex er ret enkel. Som en del af denne vejledning lærte vi, hvordan man konverterer 'Dato' fra 'String'-format til 'Dato' ved hjælp af valueOf()-metoden, der er tilgængelig i Apex 'Date' Class. Hvis du vil konvertere datoen tilbage til streng, bruger vi format() og date attributter som day(), month() og year(). Til sidst afsluttede vi denne vejledning med at diskutere DML-handlingen på Salesforce 'Campaign'-objektet for at opdatere 'Slutdatoen' ved hjælp af addDays(), addMonths() og addYears()-metoderne med separate eksempler.