Salesforce Apex – Datumnotatie

Salesforce Apex Datumnotatie



Het bijhouden van de gegevens van klanten in Accounts/Contacten is erg belangrijk in Customer Relationship Management (CRM). Op basis van de datum vinden alle processen zoals inkoop, offertes en onderhoud plaats. Laten we eens kijken hoe u de datum kunt maken op basis van een tekenreeks in Salesforce en hoe u de datum kunt converteren naar een tekenreeks. Als onderdeel van deze zelfstudie zullen we ook de methoden zien die worden toegepast op de opgemaakte datum, zoals het toevoegen van dagen, jaren, maanden, enz., Met voorbeelden.

Apex-datumklasse

Datumklasse ondersteunt alle datummethoden die primitief zijn. Het gebruikt de naamruimte 'Systeem'. We kunnen de methode valueOf() van deze klasse gebruiken om de tekenreeks om te zetten in een datumnotatie. Na het formatteren van de datum, passen we enkele methoden toe om de dagen, maanden, jaren, enz. toe te voegen aan deze geformatteerde datum met behulp van enkele methoden die ook beschikbaar zijn in deze datumklasse.







Eerst zullen we zien hoe de tekenreeks naar datum kan worden geconverteerd met behulp van de methode valueOf() in Salesforce Apex.



Datum.waardeVan()

De waardeOf() in Apex is beschikbaar in de klasse 'Date', die de tekenreeks als argument gebruikt om de opgegeven tekenreeks om te zetten in de datumnotatie. De invoertekenreeks (parameter) bevat drie attributen: jaar, maand en dag. Al deze drie worden gecombineerd/aaneengeschakeld en doorgegeven aan de methode.



Syntaxis: WaardeVan()

Zoals eerder vermeld, moeten we een variabele van de klasse 'Date' declareren en de string eraan doorgeven.





Datum date_variable= date.valueOf(string_date_format);

Voorbeeld:

Stap 1:

Laten we een string nemen die de 'Jaar-Maand-Dag' bevat.

// Verklaar jaar, maand en dag één voor één

Tekenreeksjaar = '2023';

String Maand = '4';

Tekenreeksdag = '5';

// Voeg ze allemaal samen tot een string

String string_type = Jaar + '-' + Maand + '-' + Dag;

systeem.debug(string_type);

Uitgang:



Stap 2:

Converteer nu de vorige tekenreeks 'Datum' naar 'Datum' met behulp van de methode valueOf() van de Apex-klasse 'Datum'.

// Converteer string-datum naar datum

Datum geconverteerde_datum = date.valueOf(string_type);

systeem.debug(geconverteerde_datum);

Uitgang:

We kunnen zien dat het na het converteren naar 'Datum' automatisch de datum retourneert in het DateTime-formaat. Er wordt geen rekening gehouden met de tijd (uren:minuten:seconden), zelfs niet als u deze doorgeeft aan de methode valueOf(). Het geretourneerde formaat is JJJJ-MM-DD UU:MM:SS.

Converteer de datum naar tekenreeks

Er zijn twee manieren om de 'Datum' naar 'String' te converteren. Een manier die door Apex wordt ondersteund, is het gebruik van de methode format() . De andere manier is het handmatig extraheren van de 'Datum'-attributen (jaar, maand en dag) en ze samen te voegen tot een string. Laten we ze één voor één bekijken.

1. Formaat()

De methode format() is beschikbaar in de klasse 'Date' in Apex, die de 'Date' converteert naar de tekenreeks in de indeling 'M/D/YYYY'. We kunnen ook het opgegeven formaat als parameter doorgeven aan deze methode. Het opgegeven formaat is het standaardformaat.

Syntaxis:

input_date.format(“format_type”)

Voorbeeld:

Laten we het vorige voorbeeld bekijken en de 'Datum' terug converteren naar 'String' met behulp van de format() methode. We bieden geen specifiek formaat voor de format() methode.

// Verklaar jaar, maand en dag één voor één

Tekenreeksjaar = '2023';

String Maand = '4';

Tekenreeksdag = '5';

// Voeg ze allemaal samen tot een string

String string_type = Jaar + '-' + Maand + '-' + Dag;

// Converteer string-datum naar datum

Datum geconverteerde_datum = date.valueOf(string_type);

systeem.debug(geconverteerde_datum);

// formaat()

systeem.debug(geconverteerde_datum.format());

Uitgang:

2. De datumklassemethode gebruiken

In dit scenario extraheren we het jaar, de maand en de dag afzonderlijk van de 'Datum' met behulp van de beschikbare methoden in de Apex-klasse 'Datum'. Vervolgens voegen we deze drie samen om de 'Datum' in 'String' -indeling te retourneren.

  1. dag() - Deze methode wordt gebruikt om de datum uit de 'Datum' te halen. Het retourneert het gehele getal dat de datum specificeert.
  2. maand() – Deze methode wordt gebruikt om de maand uit de “Datum” te halen. Het retourneert het gehele getal dat het maandnummer specificeert. We kunnen verwijzen naar januari als 1, februari als 2…. December als 12.
  3. jaar() – Deze methode wordt gebruikt om het jaar uit de “Datum” te halen. Het retourneert het jaar in een viercijferig formaat.

Syntaxis:

invoerdatum.jaar() + '-' + invoerdatum.maand() + '-' + invoerdatum.dag()

Voorbeeld:

Converteer de 'Datum' terug naar 'String' in het 'JJJJ-M-D' formaat.

// Verklaar jaar, maand en dag één voor één

Tekenreeksjaar = '2023';

String Maand = '4';

Tekenreeksdag = '5';

// Voeg ze allemaal samen tot een string

String string_type = Jaar + '-' + Maand + '-' + Dag;

// Converteer string-datum naar datum

Datum geconverteerde_datum = date.valueOf(string_type);

systeem.debug(geconverteerde_datum);

// Converteer datum naar tekenreeks

systeem.debug(geconverteerde_datum.jaar() + '-' + geconverteerde_datum.maand() + '-' + geconverteerde_datum.dag());

Uitgang:

Praktische voorbeelden:

Laten we eens kijken hoe we de 'Datum' kunnen bijwerken, zoals het toevoegen van dagen, jaren en maanden aan de bestaande datum in de Salesforce-objecten. Alle drie de methoden nemen het gehele getal 'n' als argument.

1. dagen toevoegen()

Om dagen aan de bestaande datum toe te voegen, ondersteunt Apex de methode addDays() die beschikbaar is in de klasse 'Date'.

2. addMonths()

Om maanden aan de bestaande datum toe te voegen, ondersteunt Apex de methode addMonths() die beschikbaar is in de klasse 'Date'.

3. jaar toevoegen()

Om jaren toe te voegen aan de bestaande datum, ondersteunt Apex de methode addYears() die beschikbaar is in de klasse 'Date'.

Syntaxis:

Laten we eens kijken naar de syntaxis voor deze drie methoden. Hier specificeert 'n' de gehele waarde.

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

Overweeg het volgende voordat u naar het voorbeeld gaat:

  1. Log in bij Salesforce en ga naar de 'App Launcher' en zoek naar 'Campagne' op het tabblad. Hier voegen we de 'Campagnenaam' en 'Einddatum' in.

  1. Kies “Campagnes” en klik op “Nieuw”.

  1. Er verschijnt een pop-up om de gegevens in de campagne in te voegen. Voeg 'Linux Hint Posts' toe onder de 'Campagnenaam' en stel de 'Einddatum' in op 4/5/2023. Klik vervolgens op 'Opslaan'.

We zijn klaar met de plaat. (Type - Conferentie en Status - Gepland komen automatisch. Laat dat staan). Laten we het anonieme venster in de ontwikkelaarsconsole openen.

Voorbeeld 1:

Laten we de methode addDays() gebruiken om 10 dagen toe te voegen aan de bestaande 'Einddatum' in het object 'Campaign'.

  1. Om dit te doen, moeten we eerst de SOQL-query gebruiken om het record op te halen uit het object 'Campagne' en dit record opslaan in een object 'Lijst'.
  2. Vervolgens gebruiken we de 'for'-lus om de lijst te herhalen en gebruiken we de methode addDays() om 10 dagen toe te voegen aan de 'Einddatum'.
  3. Ten slotte gebruiken we de instructie 'update DML' om de 'Einddatum' in het object 'Campagne' bij te werken.
// Retourneer naam en einddatum van de campagne met behulp van SOQL

Lijst query1 = [SELECT Naam,EindDatum VAN Campagne WHERE Naam = 'Linux Hint Posts'];

// Voeg 10 dagen toe aan de EndDate met de methode addDays().

voor(Campagne i: query1){

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

}

// Gebruik update DML om de EndDate bij te werken

vraag bijwerken1;

systeem.debug(query1);

Uitgang:

De vorige 'einddatum' is 5 april. Nadat er 10 dagen aan zijn toegevoegd, is de 'Einddatum' nu 15 april.

We kunnen ook kijken op het tabblad 'Campagne'. Ga terug en vernieuw de pagina. U kunt zien dat de 'Einddatum' is bijgewerkt.

Voorbeeld 2:

Laten we de methode addMonths() gebruiken om 3 maanden toe te voegen aan de bestaande 'Einddatum'.

// Retourneer naam en einddatum van de campagne met behulp van SOQL

Lijst query1 = [SELECT Naam,EindDatum VAN Campagne WHERE Naam = 'Linux Hint Posts'];

systeem.debug('Actueel: '+query1);

// Voeg 3 maanden toe aan de EndDate met de methode addMonths().

voor(Campagne i: query1){

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

}

// Gebruik update DML om de EndDate bij te werken

vraag bijwerken1;

systeem.debug('Bijgewerkt: '+query1);

Uitgang:

De vorige maand in de 'Einddatum' is april. Na 3 maanden erbij is het nu juli.

Voorbeeld 3:

Laten we de methode addYears() gebruiken om 3 jaar toe te voegen aan de bestaande 'Einddatum'.

// Retourneer naam en einddatum van de campagne met behulp van SOQL

Lijst query1 = [SELECT Naam,EindDatum VAN Campagne WHERE Naam = 'Linux Hint Posts'];

systeem.debug('Actueel: '+query1);

// Voeg 3 jaar toe aan de EndDate met de methode addYears().

voor(Campagne i: query1){

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

}

// Gebruik update DML om de EndDate bij te werken

vraag bijwerken1;

systeem.debug('Bijgewerkt: '+query1);

Uitgang:

Na toevoeging van 3 jaar aan de 'Einddatum', is het bijgewerkte jaar 2026.

Conclusie

Het formatteren van de datum in Salesforce Apex is vrij eenvoudig. Als onderdeel van deze zelfstudie hebben we geleerd hoe we de 'Date' van de 'String'-indeling naar 'Date' kunnen converteren met behulp van de methode valueOf() die beschikbaar is in de Apex-klasse 'Date'. Als je de datum terug wilt converteren naar string, gebruiken we de format() en datumattributen zoals day(), month() en year(). Ten slotte hebben we deze handleiding afgesloten met een bespreking van de DML-bewerking op het Salesforce-object 'Campaign' om de 'Einddatum' bij te werken met de methoden addDays(), addMonths() en addYears() met afzonderlijke voorbeelden.