Salesforce Apex – dátumformátum

Salesforce Apex Datumformatum



Az ügyfelek adatainak nyomon követése a fiókokban/kapcsolattartókban nagyon fontos az ügyfélkapcsolat-kezelésben (CRM). A dátum alapján az összes folyamat, például a vásárlás, az ajánlattétel és a szervizelés megtörténik. Nézzük meg, hogyan hozhat létre dátumot karakterláncból a Salesforce-ban, és hogyan alakíthatja át a dátumot karakterláncsá. Ennek az oktatóanyagnak a részeként láthatjuk a formázott dátumon alkalmazott módszereket is, például napok, évek, hónapok stb. hozzáadását, példákkal.

Apex dátum osztály

A dátum osztály támogatja az összes primitív dátummetódust. A „Rendszer” névteret használja. Ebből az osztályból a valueOf() metódus segítségével konvertálhatjuk a karakterláncot dátumformátummá. A dátum formázása után néhány módszert alkalmazunk a napok, hónapok, évek stb. hozzáadására a formázott dátumhoz, néhány módszerrel, amelyek szintén elérhetők ebben a dátumosztályban.







Először is látni fogjuk, hogyan lehet dátumra konvertálni a karakterláncot a valueOf() metódussal a Salesforce Apexben.



Date.valueOf()

Az Apexben található valueOf() a „Date” osztályban érhető el, amely a karakterláncot argumentumként veszi fel, amely a megadott karakterláncot dátumformátummá alakítja. A bemeneti karakterlánc (paraméter) három attribútumot tartalmaz – év, hónap és nap. Ezt a hármat egyesítik/összefűzik és átadják a metódusnak.



Szintaxis: ValueOf()

Mint már említettük, deklarálnunk kell a „Date” osztály egy változóját, és át kell adnunk neki a karakterláncot.





Date_date_variable= date.valueOf(karakterlánc_dátum_formátuma);

Példa:

1. lépés:

Legyen egy zsinór, amely az „Év-Hónap-nap”-ot tartalmazza.

// Év, hónap és nap deklarálása egyenként

Karakterlánc éve = '2023';

Karakterlánc hónap = '4';

String Day = '5';

// Összefűzi mindegyiket egy karakterláncba

String string_type = év + '-' + hónap + '-' + nap;

system.debug(string_type);

Kimenet:



2. lépés:

Most alakítsa át az előző „Date” karakterláncot „Date”-re a valueOf() metódus segítségével az Apex „Date” osztályból.

// Karakterlánc-Dátum konvertálása dátummá

Átalakítás dátuma = date.valueOf(karakterlánc_típusa);

system.debug(konvertált_dátum);

Kimenet:

Láthatjuk, hogy a „Date” formátumra konvertálás után automatikusan visszaadja a dátumot DateTime formátumban. Nem veszi figyelembe az időt (óra:perc:másodperc), még akkor sem, ha átadja ezeket a valueOf() metódusnak. A visszaadott formátum: ÉÉÉÉ-HH-NN ÓÓ:PP:SS.

Konvertálja a dátumot karakterláncra

A „Dátum” kétféleképpen konvertálható „karakterláncra”. Az Apex által támogatott egyik módszer a format() metódus használata. A másik módszer a „Dátum” attribútumok (év, hónap és nap) manuális kinyerése és karakterláncba fűzése. Nézzük őket egyenként.

1. Formátum()

A format() metódus elérhető az Apex „Date” osztályában, amely a „Date”-t „H/N/YYYY” formátumú karakterláncsá alakítja. A megadott formátumot paraméterként is átadhatjuk ennek a metódusnak. A megadott formátum az alapértelmezett formátum.

Szintaxis:

input_date.format(“formátum_típusa”)

Példa:

Tekintsük az előző példát, és konvertáljuk vissza a „Dátum”-ot „String”-re a format() metódus segítségével. Nem biztosítunk konkrét formátumot a format() metódushoz.

// Év, hónap és nap deklarálása egyenként

Karakterlánc éve = '2023';

Karakterlánc hónap = '4';

String Day = '5';

// Összefűzi mindegyiket egy karakterláncba

String string_type = év + '-' + hónap + '-' + nap;

// Karakterlánc-Dátum konvertálása dátummá

Átalakítás dátuma = date.valueOf(karakterlánc_típusa);

system.debug(konvertált_dátum);

// formátum()

system.debug(converted_date.format());

Kimenet:

2. A Dátumosztály módszer használata

Ebben a forgatókönyvben külön kinyerjük az évet, a hónapot és a napot a „Date”-ből az Apex „Date” osztályban elérhető metódusok segítségével. Ezután összefűzzük ezt a hármat, hogy a „Dátum” értéket „String” formátumban adja vissza.

  1. nap() – Ezzel a módszerrel kinyerhető a dátum a „Dátum”-ból. A dátumot meghatározó egész számot adja vissza.
  2. hónap() – Ezzel a módszerrel lehet kivonni a hónapot a „Dátumból”. A hónap számát meghatározó egész számot adja vissza. Január 1-re, február 2-ra hivatkozhatunk… december 12-én.
  3. év() – Ezzel a módszerrel kinyerjük az évet a „Dátumból”. Négy számjegyű formátumban adja vissza az évet.

Szintaxis:

bemeneti_dátum.év() + '-' + bemeneti_dátum.hónap() + '-' + bemeneti_dátum.nap()

Példa:

Konvertálja vissza a „Dátum”-ot „String”-re az „ÉÉÉÉ-H-N” formátumban.

// Év, hónap és nap deklarálása egyenként

Karakterlánc éve = '2023';

Karakterlánc hónap = '4';

String Day = '5';

// Összefűzi mindegyiket egy karakterláncba

String string_type = év + '-' + hónap + '-' + nap;

// Karakterlánc-Dátum konvertálása dátummá

Átalakítás dátuma = date.valueOf(karakterlánc_típusa);

system.debug(konvertált_dátum);

// Dátum konvertálása karakterláncra

system.debug(konvertált_dátum.év() + '-' + konvertált_dátum.hónap() + '-' + konvertált_dátum.nap());

Kimenet:

Gyakorlati példák:

Nézzük meg, hogyan frissíthető a „Dátum”, például napok, évek és hónapok hozzáadása a Salesforce-objektumok meglévő dátumához. Mindhárom módszer az „n” egész számot veszi argumentumként.

1. addDays()

A napok hozzáadásához a meglévő dátumhoz az Apex támogatja az addDays() metódust, amely elérhető a „Date” osztályban.

2. add Months()

Ha hónapokat szeretne hozzáadni a meglévő dátumhoz, az Apex támogatja az addMonths() metódust, amely elérhető a „Date” osztályban.

3. addYears()

Ha éveket szeretne hozzáadni a meglévő dátumhoz, az Apex támogatja az addYears() metódust, amely elérhető a „Date” osztályban.

Szintaxis:

Nézzük meg ennek a három módszernek a szintaxisát. Itt az „n” jelenti az egész értéket.

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

Mielőtt rátérne a példára, vegye figyelembe a következőket:

  1. Jelentkezzen be a Salesforce-ba, lépjen az „Alkalmazásindítóba”, és keresse meg a „Kampány” kifejezést a lapon. Ide beillesztjük a „Kampány neve” és a „Befejezés dátuma”.

  1. Válassza a „Kampányok” lehetőséget, majd kattintson az „Új” gombra.

  1. Megjelenik egy előugró ablak, amely beilleszti az adatokat a kampányba. Adja hozzá a „Linux tippbejegyzések” elemet a „Kampány neve” alatt, és állítsa be a „Befejezés dátumát” 2023.04.05. Ezután kattintson a „Mentés” gombra.

Készen állunk a lemezzel. (Típus – Konferencia és Állapot – Tervezett automatikusan jön. Hagyja). Nyissuk meg a névtelen ablakot a fejlesztői konzolban.

1. példa:

Használjuk az addDays() metódust, hogy 10 napot adjunk a „Campaign” objektum meglévő „Befejező dátumához”.

  1. Ehhez először a SOQL lekérdezést kell használnunk, hogy megkapjuk a rekordot a „Campaign” objektumtól, és tároljuk ezt a rekordot egy „List” objektumban.
  2. Ezután a „for” ciklust használjuk a lista iterálásához, és az addDays() metódussal 10 napot adunk a „Befejező dátumhoz”.
  3. Végül az „update DML” utasítást használjuk a „Campaign” objektum „Befejező dátumának” frissítésére.
// Visszaküldi a nevet és a végdátumot a kampányból SOQL használatával

List query1 = [SELECT Name,EndDate FROM Campaign WHERE Name = 'Linux tippbejegyzések'];

// Adjon hozzá 10 napot az EndDate-hez az addDays() metódussal

for(i kampány: lekérdezés1){

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

}

// Használja a DML frissítését az EndDate frissítéséhez

query1 frissítése;

system.debug(query1);

Kimenet:

Az előző „Befejező dátum” április 5. 10 nap hozzáadásával a „Befejezés dátuma” most április 15.

A „Kampány” fülön is ellenőrizhetjük. Lépjen vissza, és frissítse az oldalt. Láthatja, hogy a „Befejezés dátuma” frissült.

2. példa:

Használjuk az addMonths() metódust, hogy 3 hónapot adjunk a meglévő „Befejező dátumhoz”.

// Visszaküldi a nevet és a végdátumot a kampányból SOQL használatával

List query1 = [SELECT Name,EndDate FROM Campaign WHERE Name = 'Linux tippbejegyzések'];

system.debug('Aktuális: '+query1);

// Adjon hozzá 3 hónapot az EndDate-hez az addMonths() metódussal

for(i kampány: lekérdezés1){

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

}

// Használja a DML frissítését az EndDate frissítéséhez

query1 frissítése;

system.debug('Frissítve: '+query1);

Kimenet:

A „Befejező dátum” előző hónapja április. 3 hónap hozzáadásával most július van.

3. példa:

Használjuk az addYears() metódust, hogy 3 évet adjunk a meglévő „Befejező dátumhoz”.

// Visszaküldi a nevet és a végdátumot a kampányból SOQL használatával

List query1 = [SELECT Name,EndDate FROM Campaign WHERE Name = 'Linux tippbejegyzések'];

system.debug('Aktuális: '+query1);

// Adjon hozzá 3 évet az EndDate-hez az addYears() metódussal

for(i kampány: lekérdezés1){

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

}

// Használja a DML frissítését az EndDate frissítéséhez

query1 frissítése;

system.debug('Frissítve: '+query1);

Kimenet:

A „Befejezés dátumához” 3 év hozzáadását követően a frissített év 2026.

Következtetés

A dátum formázása a Salesforce Apexben meglehetősen egyszerű. Ennek az oktatóanyagnak a részeként megtanultuk, hogyan alakítsuk át a „Date”-t „String” formátumról „Date”-re az Apex „Date” osztályban elérhető valueOf() metódussal. Ha vissza szeretné alakítani a dátumot karakterláncra, akkor a format() és dátum attribútumokat használjuk, például day(), month() és year(). Végül az útmutatót a Salesforce „Campaign” objektum DML-műveletének megvitatásával fejeztük be a „Befejező dátum” frissítéséhez az addDays(), addMonths() és addYears() metódusokkal, külön példákkal.