Salesforce Apex – Formato data

Salesforce Apex Formato Data



Tracciare i dettagli dei clienti in Account/Contatti è molto importante nel Customer Relationship Management (CRM). In base alla data, avvengono tutti i processi come l'acquisto, la quotazione e l'assistenza. Diamo un'occhiata a come creare la data dalla stringa in Salesforce e convertire la data in stringa. Come parte di questo tutorial, vedremo anche i metodi applicati alla data formattata come l'aggiunta di giorni, anni, mesi, ecc., con esempi.

Apex Date Class

La classe Date supporta tutti i metodi di data che sono primitivi. Utilizza lo spazio dei nomi 'Sistema'. Possiamo utilizzare il metodo valueOf() di questa classe per convertire la stringa in un formato di data. Dopo aver formattato la data, applichiamo alcuni metodi per aggiungere i giorni, i mesi, gli anni, ecc., a questa data formattata utilizzando alcuni metodi che sono disponibili anche in questa classe di date.







Innanzitutto, vedremo come convertire la stringa in data utilizzando il metodo valueOf() in Salesforce Apex.



Data.valoreOf()

Il valueOf() in Apex è disponibile nella classe 'Date' che accetta la stringa come argomento che converte la stringa specificata nel formato della data. La stringa di input (parametro) include tre attributi: anno, mese e giorno. Tutti e tre vengono combinati/concatenati e passati al metodo.



Sintassi: ValoreOf()

Come già accennato, dobbiamo dichiarare una variabile della classe “Date” e passarle la stringa.





Data date_variable= date.valueOf(string_date_format);

Esempio:

Passo 1:

Prendiamo una stringa che contenga 'Anno-Mese-Giorno'.

// Dichiara anno, mese e giorno uno per uno

Stringa Anno = '2023';

String Mese = '4';

Giorno stringa = '5';

// Concatenali tutti in una stringa

String string_type = Anno + '-' + Mese + '-' + Giorno;

system.debug(tipo_stringa);

Produzione:



Passo 2:

Ora, converti la precedente stringa 'Date' in 'Date' usando il metodo valueOf() dalla classe Apex 'Date'.

// Converte string-Date in Date

Data convert_date = date.valueOf(string_type);

system.debug(data_convertita);

Produzione:

Possiamo vedere che dopo la conversione in 'Date', restituisce automaticamente la data nel formato DateTime. Non considererà il tempo (ore: minuti: secondi) anche se lo passi al metodo valueOf(). Il formato restituito è AAAA-MM-GG HH:MM:SS.

Converti la data in stringa

Esistono due modi per convertire la 'Data' in 'Stringa'. Un modo supportato da Apex è l'utilizzo del metodo format(). L'altro modo è estrarre manualmente gli attributi 'Data' (anno, mese e giorno) e concatenarli in una stringa. Diamo un'occhiata a loro uno per uno.

1. Formato()

Il metodo format() è disponibile nella classe “Date” in Apex che converte la “Date” nella stringa nel formato “M/D/YYYY”. Possiamo anche passare il formato specificato come parametro a questo metodo. Il formato specificato è il formato predefinito.

Sintassi:

input_date.format(“format_type”)

Esempio:

Consideriamo l'esempio precedente e riconvertiamo la 'Data' in 'Stringa' usando il metodo format(). Non stiamo fornendo alcun formato specifico al metodo format().

// Dichiara anno, mese e giorno uno per uno

Stringa Anno = '2023';

String Mese = '4';

Giorno stringa = '5';

// Concatenali tutti in una stringa

String string_type = Anno + '-' + Mese + '-' + Giorno;

// Converte string-Date in Date

Data convert_date = date.valueOf(string_type);

system.debug(data_convertita);

// formato()

system.debug(converted_date.format());

Produzione:

2. Utilizzo del metodo della classe di data

In questo scenario, estraiamo l'anno, il mese e il giorno separatamente dalla 'Data' utilizzando i metodi disponibili nella classe Apex 'Date'. Successivamente, concateniamo questi tre per restituire la 'Data' in formato 'Stringa'.

  1. giorno() – Questo metodo serve per estrarre la data dalla “Data”. Restituisce il numero intero che specifica la data.
  2. mese() – Questo metodo serve per estrarre il mese dalla “Data”. Restituisce il numero intero che specifica il numero del mese. Possiamo riferirci a gennaio come 1, febbraio come 2…. dicembre come 12.
  3. anno() – Questo metodo serve per estrarre l'anno dalla “Data”. Restituisce l'anno in un formato a quattro cifre.

Sintassi:

input_data.anno() + '-' + input_data.mese() + '-' + input_data.giorno()

Esempio:

Riconvertire la 'Data' in 'Stringa' nel formato 'AAAA-M-D'.

// Dichiara anno, mese e giorno uno per uno

Stringa Anno = '2023';

String Mese = '4';

Giorno stringa = '5';

// Concatenali tutti in una stringa

String string_type = Anno + '-' + Mese + '-' + Giorno;

// Converte string-Date in Date

Data convert_date = date.valueOf(string_type);

system.debug(data_convertita);

// Converti la data in una stringa

system.debug(data_convertita.anno() + '-' + data_convertita.mese() + '-' + data_convertita.giorno());

Produzione:

Esempi pratici:

Vediamo come aggiornare la 'Data' aggiungendo giorni, anni e mesi alla data esistente negli oggetti Salesforce. Tutti e tre i metodi prendono il numero intero 'n' come argomento.

1. aggiungiGiorni()

Per aggiungere giorni alla data esistente, Apex supporta il metodo addDays() disponibile nella classe 'Date'.

2. aggiungiMesi()

Per aggiungere mesi alla data esistente, Apex supporta il metodo addMonths() disponibile nella classe 'Date'.

3. aggiungiAnni()

Per aggiungere anni alla data esistente, Apex supporta il metodo addYears() disponibile nella classe 'Date'.

Sintassi:

Diamo un'occhiata alla sintassi per questi tre metodi. Qui, 'n' specifica il valore intero.

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

Prima di passare all'esempio, considera quanto segue:

  1. Accedi a Salesforce e vai su 'App Launcher' e cerca 'Campagna' nella scheda. Qui inseriamo il 'Nome campagna' e la 'Data di fine'.

  1. Scegli 'Campagne' e fai clic su 'Nuova'.

  1. Viene visualizzato un popup per inserire i dati nella campagna. Aggiungi 'Linux Hint Posts' sotto il 'Campaign Name' e imposta la 'End Date' come 4/5/2023. Quindi, fare clic su 'Salva'.

Siamo pronti con il record. (Tipo - Conferenza e Stato - Pianificato verrà automaticamente. Lascialo). Apriamo la finestra anonima nella console per sviluppatori.

Esempio 1:

Usiamo il metodo addDays() per aggiungere 10 giorni alla 'Data di fine' esistente nell'oggetto 'Campagna'.

  1. Per fare ciò, dobbiamo prima utilizzare la query SOQL per ottenere il record dall'oggetto 'Campaign' e memorizzare questo record in un oggetto 'List'.
  2. Successivamente, utilizziamo il ciclo 'for' per iterare l'elenco e utilizzare il metodo addDays() per aggiungere 10 giorni alla 'Data di fine'.
  3. Infine, utilizziamo l'istruzione 'update DML' per aggiornare la 'Data di fine' nell'oggetto 'Campagna'.
// Restituisce il nome e la data di fine dalla campagna utilizzando SOQL

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

// Aggiungi 10 giorni a EndDate utilizzando il metodo addDays()

for(Campagna i: query1){

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

}

// Usa update DML per aggiornare EndDate

aggiorna query1;

sistema.debug(query1);

Produzione:

La precedente 'Data di fine' è il 5 aprile. Dopo aver aggiunto 10 giorni, la 'Data di fine' è ora il 15 aprile.

Possiamo anche controllare nella scheda 'Campagna'. Torna indietro e aggiorna la pagina. Puoi vedere che la 'Data di fine' è aggiornata.

Esempio 2:

Usiamo il metodo addMonths() per aggiungere 3 mesi alla 'Data di fine' esistente.

// Restituisce il nome e la data di fine dalla campagna utilizzando SOQL

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

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

// Aggiungi 3 mesi a EndDate utilizzando il metodo addMonths()

for(Campagna i: query1){

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

}

// Usa update DML per aggiornare EndDate

aggiorna query1;

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

Produzione:

Il mese precedente nella 'Data di fine' è aprile. Dopo aver aggiunto 3 mesi, ora è luglio.

Esempio 3:

Usiamo il metodo addYears() per aggiungere 3 anni alla 'Data di fine' esistente.

// Restituisce il nome e la data di fine dalla campagna utilizzando SOQL

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

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

// Aggiungi 3 anni a EndDate usando il metodo addYears()

for(Campagna i: query1){

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

}

// Usa update DML per aggiornare EndDate

aggiorna query1;

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

Produzione:

Dopo aver aggiunto 3 anni alla 'Data di fine', l'anno aggiornato è il 2026.

Conclusione

La formattazione della data in Salesforce Apex è abbastanza semplice. Come parte di questo tutorial, abbiamo imparato come convertire il formato 'Date' dal formato 'Stringa' a 'Date' utilizzando il metodo valueOf() disponibile nella classe Apex 'Date'. Se vuoi riconvertire la data in stringa, usiamo gli attributi format() e date come day(), month() e year(). Infine, abbiamo concluso questa guida discutendo l'operazione DML sull'oggetto 'Campagna' di Salesforce per aggiornare la 'Data di fine' utilizzando i metodi addDays(), addMonths() e addYears() con esempi separati.