Ś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 drugimRok 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 DateData 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 drugimRok 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”.
- dzień() – Ta metoda służy do wyodrębnienia daty z „Daty”. Zwraca liczbę całkowitą określającą datę.
- 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.
- 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 drugimRok 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:
- Zaloguj się do Salesforce i przejdź do „App Launcher” i wyszukaj „Kampania” w zakładce. Tutaj wstawiamy „Nazwę kampanii” i „Datę zakończenia”.
- Wybierz „Kampanie” i kliknij „Nowy”.
- 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”.
- Aby to zrobić, musimy najpierw użyć zapytania SOQL, aby pobrać rekord z obiektu „Campaign” i zapisać ten rekord w obiekcie „List”.
- Następnie używamy pętli „for” do iteracji listy i metody addDays() w celu dodania 10 dni do „Daty końcowej”.
- Na koniec używamy instrukcji „update DML”, aby zaktualizować „Datę końcową” w obiekcie „Kampania”.
List
// 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 SOQLList
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 SOQLList
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.