Salesforce Apex – format daty

Salesforce Apex Format Daty



Śledzenie szczegółów klientów w Kontach/Kontaktach jest bardzo ważne w zarządzaniu relacjami z klientami (CRM). Na podstawie daty odbywają się wszystkie procesy, takie jak zakup, wycena i serwis. Przyjrzyjmy się, jak utworzyć datę z ciągu znaków w Salesforce i przekonwertować datę na ciąg znaków. W ramach tego samouczka zobaczymy również metody stosowane w sformatowanej dacie, takie jak dodawanie dni, lat, miesięcy itp., Wraz z przykładami.

Klasa daty wierzchołka

Klasa Date obsługuje wszystkie prymitywne metody daty. Używa przestrzeni nazw „System”. Możemy użyć metody valueOf() z tej klasy, aby przekonwertować ciąg znaków na format daty. Po sformatowaniu daty stosujemy pewne metody dodawania dni, miesięcy, lat itp. do tej sformatowanej daty, korzystając z metod dostępnych również w tej klasie dat.







Najpierw zobaczymy, jak przekonwertować ciąg do daty za pomocą metody valueOf() w Salesforce Apex.



Date.valueOf()

Funkcja valueOf() w Apex jest dostępna w klasie „Date”, która przyjmuje ciąg jako argument konwertujący określony ciąg na format daty. Ciąg wejściowy (parametr) zawiera trzy atrybuty — rok, miesiąc i dzień. Wszystkie te trzy są łączone/łączone i przekazywane do metody.



Składnia: ValueOf()

Jak już wspomniano, musimy zadeklarować zmienną klasy „Date” i przekazać do niej ciąg znaków.





Date date_variable= date.valueOf(string_date_format);

Przykład:

Krok 1:

Załóżmy ciąg zawierający „Rok-Miesiąc-Dzień”.

// Deklaracja roku, miesiąca i dnia jeden po drugim

Rok ciągu = „2023”;

Ciąg Miesiąc = „4”;

Dzień ciągu = „5”;

// Połącz je wszystkie w łańcuch

Ciąg string_type = Rok + '-' + Miesiąc + '-' + Dzień;

system.debug(string_type);

Wyjście:



Krok 2:

Teraz zamień poprzedni łańcuch „Date” na „Date” za pomocą metody valueOf() z klasy „Date” Apex.

// Konwertuj string-Date na Date

Data przekonwertowana_data = date.valueOf(string_type);

system.debug(data_przekształcenia);

Wyjście:

Widzimy, że po konwersji na „Date” automatycznie zwraca datę w formacie DateTime. Nie uwzględni czasu (godziny: minuty: sekundy), nawet jeśli przekażesz je do metody valueOf(). Zwracany format to RRRR-MM-DD HH:MM:SS.

Konwertuj datę na ciąg

Istnieją dwa sposoby konwersji „Date” na „String”. Jednym ze sposobów obsługiwanych przez Apex jest użycie metody format(). Innym sposobem jest ręczne wyodrębnienie atrybutów „Data” (rok, miesiąc i dzień) i połączenie ich w łańcuch. Przyjrzyjmy się im jeden po drugim.

1. Formatuj()

Metoda format() jest dostępna w klasie „Date” w Apex, która konwertuje „Date” na napis w formacie „M/D/RRRR”. Możemy również przekazać określony format jako parametr do tej metody. Określony format jest formatem domyślnym.

Składnia:

input_date.format('typ_formatu')

Przykład:

Rozważmy poprzedni przykład i przekonwertuj z powrotem „Date” na „String” za pomocą metody format(). Nie dostarczamy żadnego konkretnego formatu dla metody format() .

// Deklaracja roku, miesiąca i dnia jeden po drugim

Rok ciągu = „2023”;

Ciąg Miesiąc = „4”;

Dzień ciągu = „5”;

// Połącz je wszystkie w łańcuch

Ciąg string_type = Rok + '-' + Miesiąc + '-' + Dzień;

// Konwertuj string-Date na Date

Data przekonwertowana_data = date.valueOf(string_type);

system.debug(data_przekształcenia);

// formatuj()

system.debug(przekonwertowana_data.format());

Wyjście:

2. Korzystanie z metody klas dat

W tym scenariuszu wyodrębniamy rok, miesiąc i dzień oddzielnie od „Daty” przy użyciu metod dostępnych w klasie „Data” Apex. Następnie łączymy te trzy elementy, aby zwrócić „Date” w formacie „String”.

  1. dzień() – Ta metoda służy do wyodrębnienia daty z „Daty”. Zwraca liczbę całkowitą określającą datę.
  2. miesiąc() – Ta metoda służy do wyodrębnienia miesiąca z „Daty”. Zwraca liczbę całkowitą określającą numer miesiąca. Możemy odnosić się do stycznia jako 1, lutego jako 2…. grudnia jako 12.
  3. rok() – Ta metoda służy do wyodrębnienia roku z „Daty”. Zwraca rok w formacie czterocyfrowym.

Składnia:

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

Przykład:

Konwertuj z powrotem „Date” na „String” w formacie „RRRR-M-D”.

// Deklaracja roku, miesiąca i dnia jeden po drugim

Rok ciągu = „2023”;

Ciąg Miesiąc = „4”;

Dzień ciągu = „5”;

// Połącz je wszystkie w łańcuch

Ciąg string_type = Rok + '-' + Miesiąc + '-' + Dzień;

// Konwertuj string-Date na Date

Data przekonwertowana_data = date.valueOf(string_type);

system.debug(data_przekształcenia);

// Konwertuj datę na łańcuch

system.debug(przekonwertowana_data.rok() + '-' + przekonwertowana_data.miesiąc() + '-' + przekonwertowana_data.dzień());

Wyjście:

Praktyczne przykłady:

Zobaczmy, jak zaktualizować „Date”, na przykład dodając dni, lata i miesiące do istniejącej daty w obiektach Salesforce. Wszystkie trzy metody przyjmują liczbę całkowitą „n” jako argument.

1. dodajDni()

Aby dodać dni do istniejącej daty, Apex obsługuje metodę addDays() dostępną w klasie „Date”.

2. dodaj miesiące()

Aby dodać miesiące do istniejącej daty, Apex obsługuje metodę addMonths() dostępną w klasie „Date”.

3. dodaj lata()

Aby dodać lata do istniejącej daty, Apex obsługuje metodę addYears() dostępną w klasie „Date”.

Składnia:

Przyjrzyjmy się składni tych trzech metod. Tutaj „n” oznacza wartość całkowitą.

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

Zanim przejdziemy do przykładu, rozważ następujące kwestie:

  1. Zaloguj się do Salesforce i przejdź do „App Launcher” i wyszukaj „Kampania” w zakładce. Tutaj wstawiamy „Nazwę kampanii” i „Datę zakończenia”.

  1. Wybierz „Kampanie” i kliknij „Nowy”.

  1. Pojawi się wyskakujące okienko, aby wstawić dane do kampanii. Dodaj „Linux Hint Posts” pod „Campaign Name” i ustaw „End Date” na 4/5/2023. Następnie kliknij „Zapisz”.

Jesteśmy gotowi z rekordem. (Typ – Konferencja i Status – Planowane pojawią się automatycznie. Zostaw to). Otwórzmy anonimowe okno w konsoli programisty.

Przykład 1:

Użyjmy metody addDays(), aby dodać 10 dni do istniejącej „Daty końcowej” w obiekcie „Kampania”.

  1. Aby to zrobić, musimy najpierw użyć zapytania SOQL, aby pobrać rekord z obiektu „Campaign” i zapisać ten rekord w obiekcie „List”.
  2. Następnie używamy pętli „for” do iteracji listy i metody addDays() w celu dodania 10 dni do „Daty końcowej”.
  3. Na koniec używamy instrukcji „update DML”, aby zaktualizować „Datę końcową” w obiekcie „Kampania”.
// Zwróć nazwę i datę końcową z kampanii przy użyciu SOQL

List query1 = [WYBIERZ nazwę,Data zakończenia FROM Kampania WHERE Nazwa = 'Posty z podpowiedziami dla systemu Linux'];

// Dodaj 10 dni do EndDate za pomocą metody addDays().

for(Kampania i: zapytanie1){

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

}

// Użyj aktualizacji DML, aby zaktualizować EndDate

zapytanie aktualizacyjne1;

system.debug(zapytanie1);

Wyjście:

Poprzednia „Data zakończenia” to 5 kwietnia. Po dodaniu 10 dni „Data zakończenia” to teraz 15 kwietnia.

Możemy też sprawdzić w zakładce „Kampania”. Cofnij się i odśwież stronę. Możesz zobaczyć, że „Data zakończenia” została zaktualizowana.

Przykład 2:

Użyjmy metody addMonths(), aby dodać 3 miesiące do istniejącej „Daty końcowej”.

// Zwróć nazwę i datę końcową z kampanii przy użyciu SOQL

List query1 = [WYBIERZ nazwę,Data zakończenia FROM Kampania WHERE Nazwa = 'Posty z podpowiedziami dla systemu Linux'];

system.debug('Rzeczywista: '+zapytanie1);

// Dodaj 3 miesiące do EndDate za pomocą metody addMonths().

for(Kampania i: zapytanie1){

i.DataKońcowa = i.DataKońcowa.addMonths(3);

}

// Użyj aktualizacji DML, aby zaktualizować EndDate

zapytanie aktualizacyjne1;

system.debug('Zaktualizowano: '+zapytanie1);

Wyjście:

Poprzedni miesiąc w „Dacie zakończenia” to kwiecień. Po dodaniu 3 miesięcy jest już lipiec.

Przykład 3:

Użyjmy metody addYears(), aby dodać 3 lata do istniejącej „Daty końcowej”.

// Zwróć nazwę i datę końcową z kampanii przy użyciu SOQL

List query1 = [WYBIERZ nazwę,Data zakończenia FROM Kampania WHERE Nazwa = 'Posty z podpowiedziami dla systemu Linux'];

system.debug('Rzeczywista: '+zapytanie1);

// Dodaj 3 lata do EndDate za pomocą metody addYears().

for(Kampania i: zapytanie1){

i.DataKońcowa = i.DataKońcowa.addYears(3);

}

// Użyj aktualizacji DML, aby zaktualizować EndDate

zapytanie aktualizacyjne1;

system.debug('Zaktualizowano: '+zapytanie1);

Wyjście:

Po dodaniu 3 lat do „Daty końcowej” zaktualizowany rok to 2026.

Wniosek

Formatowanie daty w Salesforce Apex jest dość proste. W ramach tego samouczka dowiedzieliśmy się, jak przekonwertować „Date” z formatu „String” na „Date” za pomocą metody valueOf() dostępnej w klasie „Date” Apex. Jeśli chcesz przekonwertować datę z powrotem na łańcuch, używamy atrybutów format() i date, takich jak day(), month() i year(). Na koniec zakończyliśmy ten przewodnik, omawiając operację DML na obiekcie Salesforce „Campaign”, aby zaktualizować „Datę końcową” za pomocą metod addDays(), addMonths() i addYears() z osobnymi przykładami.