Salesforce Apex – päivämäärämuoto

Salesforce Apex Paivamaaramuoto



Asiakkaiden tietojen seuranta Tilit/Yhteystiedot -kohdassa on erittäin tärkeää asiakassuhteiden hallinnassa (CRM). Päivämäärän perusteella kaikki prosessit, kuten osto, tarjous ja huolto, tapahtuvat. Katsotaanpa, kuinka päivämäärä luodaan merkkijonosta Salesforcessa ja muunnetaan päivämäärä merkkijonoksi. Osana tätä opetusohjelmaa näemme myös menetelmät, joita käytetään muotoillulla päivämäärällä, kuten päivien, vuosien, kuukausien jne. lisääminen esimerkkeineen.

Apex Date Class

Date-luokka tukee kaikkia päivämäärämenetelmiä, jotka ovat primitiivisiä. Se käyttää 'Järjestelmä'-nimiavaruutta. Voimme käyttää tämän luokan valueOf()-metodia muuntaaksesi merkkijonon päivämäärämuotoon. Päivämäärän muotoilun jälkeen käytämme joitain menetelmiä lisätäksemme päivät, kuukaudet, vuodet jne. tähän muotoiltuun päivämäärään käyttämällä joitain menetelmiä, jotka ovat käytettävissä myös tässä päivämääräluokassa.







Ensinnäkin näemme, kuinka merkkijono muunnetaan päivämääräksi arvoOf()-menetelmällä Salesforce Apexissa.



Date.valueOf()

Apexin valueOf() on käytettävissä 'Date'-luokassa, joka käyttää merkkijonoa argumenttina, joka muuntaa määritetyn merkkijonon päivämäärämuotoon. Syöttömerkkijono (parametri) sisältää kolme attribuuttia – vuosi, kuukausi ja päivä. Kaikki nämä kolme yhdistetään/ketjutetaan ja siirretään menetelmään.



Syntaksi: ValueOf()

Kuten jo mainittiin, meidän on ilmoitettava 'Päivämäärä'-luokan muuttuja ja välitettävä merkkijono sille.





Päivämäärä päivämäärä_muuttuja= päivämäärä.arvoOf(merkkijono_päivämäärän_muoto);

Esimerkki:

Vaihe 1:

Otetaan merkkijono, jossa on 'vuosi-kuukausi-päivä'.

// Ilmoita vuosi, kuukausi ja päivä yksitellen

Merkkijonovuosi = '2023';

Merkkijonokuukausi = '4';

merkkijonopäivä = '5';

// Liitä ne kaikki merkkijonoksi

String string_type = Vuosi + '-' + kuukausi + '-' + päivä;

system.debug(merkkijonotyyppi);

Lähtö:



Vaihe 2:

Muunna nyt edellinen 'Päivämäärä'-merkkijono 'Päivämääräksi' käyttämällä valueOf()-metodia Apexin 'Date' -luokasta.

// Muunna merkkijono-päivämäärä päivämääräksi

Muuntopäivämäärä = päivämäärä.arvoOf(merkkijonotyyppi);

system.debug(muunnettu_päivämäärä);

Lähtö:

Voimme nähdä, että muuntamisen jälkeen 'Päivämääräksi' se palauttaa päivämäärän automaattisesti DateTime-muodossa. Se ei ota huomioon aikaa (tunnit:minuutit:sekunnit), vaikka välität ne valueOf()-metodille. Palautettu muoto on VVVV-KK-PP HH:MM:SS.

Muunna päivämäärä merkkijonoksi

On kaksi tapaa muuntaa 'Päiväys' 'merkkijonoksi'. Yksi Apexin tukema tapa on käyttää format()-menetelmää. Toinen tapa on purkaa 'Päivämäärä'-attribuutit (vuosi, kuukausi ja päivä) manuaalisesti ja ketjuttaa ne merkkijonoon. Katsotaanpa niitä yksitellen.

1. Muoto()

Format()-menetelmä on saatavilla Apexin 'Päivämäärä'-luokassa, joka muuntaa 'Päivämäärän' merkkijonoksi muodossa 'M/D/YYYY'. Voimme myös välittää määritetyn muodon parametrina tälle menetelmälle. Määritetty muoto on oletusmuoto.

Syntaksi:

input_date.format('muoto_tyyppi')

Esimerkki:

Tarkastellaanpa edellistä esimerkkiä ja muunnetaan 'Päiväys' takaisin 'Stringiksi' käyttämällä format()-menetelmää. Emme tarjoa format()-menetelmälle mitään tiettyä muotoa.

// Ilmoita vuosi, kuukausi ja päivä yksitellen

Merkkijonovuosi = '2023';

Merkkijonokuukausi = '4';

merkkijonopäivä = '5';

// Liitä ne kaikki merkkijonoksi

String string_type = Vuosi + '-' + kuukausi + '-' + päivä;

// Muunna merkkijono-päivämäärä päivämääräksi

Muuntopäivämäärä = päivämäärä.arvoOf(merkkijonotyyppi);

system.debug(muunnettu_päivämäärä);

// muoto()

system.debug(converted_date.format());

Lähtö:

2. Päivämääräluokka-menetelmän käyttäminen

Tässä skenaariossa poimimme vuoden, kuukauden ja päivän erikseen 'päivämäärästä' käyttämällä Apexin 'Päivämäärä'-luokan käytettävissä olevia menetelmiä. Seuraavaksi yhdistämme nämä kolme palauttaaksemme 'päivämäärän' 'String'-muodossa.

  1. päivä() – Tätä menetelmää käytetään päivämäärän poimimiseen päivämäärästä. Se palauttaa kokonaisluvun, joka määrittää päivämäärän.
  2. kuukausi() – Tätä menetelmää käytetään kuukauden poimimiseen päivämäärästä. Se palauttaa kokonaisluvun, joka määrittää kuukauden numeron. Tammikuuta voidaan kutsua 1. päiväksi, helmikuuta 2:ksi…. joulukuuta 12.
  3. vuosi () – Tätä menetelmää käytetään poimimaan vuosi 'päivämäärästä'. Se palauttaa vuoden nelinumeroisessa muodossa.

Syntaksi:

input_date.year() + '-' + syöte_päivämäärä.kuukausi() + '-' + syöttöpäivä.päivä()

Esimerkki:

Muunna ”Päiväys” takaisin ”String”-muotoon ”VVVV-KK-P”.

// Ilmoita vuosi, kuukausi ja päivä yksitellen

Merkkijonovuosi = '2023';

Merkkijonokuukausi = '4';

merkkijonopäivä = '5';

// Liitä ne kaikki merkkijonoksi

String string_type = Vuosi + '-' + kuukausi + '-' + päivä;

// Muunna merkkijono-päivämäärä päivämääräksi

Muuntopäivämäärä = päivämäärä.arvoOf(merkkijonotyyppi);

system.debug(muunnettu_päivämäärä);

// Muunna päivämäärä merkkijonoksi

system.debug(muunnin_päivämäärä.vuosi() + '-' + muunnettu_päivämäärä.kuukausi() + '-' + muunnettu_päivämäärä.päivä());

Lähtö:

Käytännön esimerkkejä:

Katsotaanpa, kuinka päivitetään 'Päivämäärä', kuten lisätään päiviä, vuosia ja kuukausia olemassa olevaan päivämäärään Salesforce-objekteissa. Kaikki kolme menetelmää ottavat 'n'-kokonaisluvun argumenttina.

1. addDays()

Päivien lisäämiseksi olemassa olevaan päivämäärään Apex tukee addDays()-menetelmää, joka on käytettävissä 'Date'-luokassa.

2. add Months()

Kuukausien lisäämiseksi olemassa olevaan päivämäärään Apex tukee AddMonths()-metodia, joka on käytettävissä 'Päivämäärä'-luokassa.

3. addYears()

Lisätäkseen vuosia olemassa olevaan päivämäärään Apex tukee addYears()-menetelmää, joka on käytettävissä 'Päivämäärä'-luokassa.

Syntaksi:

Katsotaanpa näiden kolmen menetelmän syntaksia. Tässä 'n' merkitsee kokonaislukua.

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

Ennen kuin siirryt esimerkkiin, harkitse seuraavaa:

  1. Kirjaudu Salesforceen ja siirry 'Sovelluksien käynnistysohjelmaan' ja etsi välilehdeltä 'Kampanja'. Lisäämme tähän 'Kampanjan nimi' ja 'Loppupäivä'.

  1. Valitse 'Kampanjat' ja napsauta 'Uusi'.

  1. Näkyviin tulee ponnahdusikkuna tietojen lisäämiseksi kampanjaan. Lisää 'Linux Hint Posts' 'Kampanjan nimi' -kohtaan ja aseta 'Päättymispäiväksi' 5.4.2023. Napsauta sitten 'Tallenna'.

Olemme valmiita levyn kanssa. (Tyyppi – Neuvottelu ja tila – Suunniteltu tulee automaattisesti. Jätä se). Avataan anonyymi ikkuna kehittäjäkonsolissa.

Esimerkki 1:

Lisätään 10 päivää 'Campaign'-objektin olemassa olevaan lopetuspäivään addDays()-menetelmällä.

  1. Tätä varten meidän on ensin saatava tietue 'Campaign'-objektista SOQL-kyselyn avulla ja tallennettava tämä tietue 'Lista'-objektiin.
  2. Seuraavaksi käytämme 'for'-silmukkaa toistamaan luetteloa ja lisäämään 'lopetuspäivämäärään' addDays()-menetelmällä 10 päivää.
  3. Lopuksi käytämme 'update DML' -käskyä päivittääksemme 'Campaign'-objektin 'End Date' -kohdan.
// Palauta nimi ja lopetuspäivämäärä kampanjasta SOQL:n avulla

List query1 = [SELECT Name,EndDate FROM Campaign WHERE Name = 'Linux-vinkkiviestit'];

// Lisää EndDate-kohtaan 10 päivää käyttämällä addDays()-menetelmää

for(Campaign i: kysely1){

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

}

// Päivitä EndDate päivitys DML:n avulla

päivitä kysely1;

system.debug(query1);

Lähtö:

Edellinen 'Päättymispäivä' on 5. huhtikuuta. Kun siihen on lisätty 10 päivää, 'Päättymispäivä' on nyt 15. huhtikuuta.

Voimme myös tarkistaa 'Kampanja'-välilehden. Siirry taaksepäin ja päivitä sivu. Voit nähdä, että 'Päättymispäivä' on päivitetty.

Esimerkki 2:

Lisätään olemassa olevaan lopetuspäivään 3 kuukautta addMonths()-menetelmällä.

// Palauta nimi ja lopetuspäivämäärä kampanjasta SOQL:n avulla

List query1 = [SELECT Name,EndDate FROM Campaign WHERE Name = 'Linux-vinkkiviestit'];

system.debug('Todellinen: '+kysely1);

// Lisää EndDate-kohtaan 3 kuukautta käyttämällä addMonths()-menetelmää

for(Campaign i: kysely1){

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

}

// Päivitä EndDate päivitys DML:n avulla

päivitä kysely1;

system.debug('Päivitetty: '+kysely1);

Lähtö:

Edellinen kuukausi 'Päättymispäivämäärässä' on huhtikuu. Kolmen kuukauden lisäyksen jälkeen on nyt heinäkuu.

Esimerkki 3:

Lisätään olemassa olevaan lopetuspäivään 3 vuotta addYears()-menetelmällä.

// Palauta nimi ja lopetuspäivämäärä kampanjasta SOQL:n avulla

List query1 = [SELECT Name,EndDate FROM Campaign WHERE Name = 'Linux-vinkkiviestit'];

system.debug('Todellinen: '+kysely1);

// Lisää EndDate 3 vuotta käyttämällä addYears()-metodia

for(Campaign i: kysely1){

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

}

// Päivitä EndDate päivitys DML:n avulla

päivitä kysely1;

system.debug('Päivitetty: '+kysely1);

Lähtö:

Kun 'Päättymispäivämäärään' on lisätty 3 vuotta, päivitetty vuosi on 2026.

Johtopäätös

Päivämäärän muotoilu Salesforce Apexissa on melko yksinkertaista. Osana tätä opetusohjelmaa opimme muuttamaan 'Päivämäärä' 'String'-muodosta 'Date' käyttämällä valueOf()-menetelmää, joka on saatavilla Apex 'Date' -luokassa. Jos haluat muuntaa päivämäärän takaisin merkkijonoksi, käytämme format()- ja päivämäärämääritteitä, kuten day(), kuukausi() ja vuosi(). Lopuksi päätimme tämän oppaan keskustelemalla DML-operaatiosta Salesforce 'Campaign' -objektissa 'Loppupäivämäärän' päivittämiseksi käyttämällä addDays(), addMonths() ja addYears() menetelmiä erillisillä esimerkeillä.