Отслеживание сведений о клиентах в учетных записях/контактах очень важно для управления взаимоотношениями с клиентами (CRM). В зависимости от даты происходят все процессы, такие как покупка, котировка и обслуживание. Давайте посмотрим, как создать дату из строки в Salesforce и преобразовать дату в строку. В рамках этого руководства мы также увидим методы, которые применяются к форматированной дате, такие как добавление дней, лет, месяцев и т. д., с примерами.
Верхний класс свиданий
Класс Date поддерживает все примитивные методы даты. Он использует пространство имен «System». Мы можем использовать метод valueOf() из этого класса для преобразования строки в формат даты. После форматирования даты мы применяем некоторые методы для добавления дней, месяцев, лет и т. Д. К этой форматированной дате, используя некоторые методы, которые также доступны в этом классе даты.
Сначала мы увидим, как преобразовать строку в дату с помощью метода valueOf() в Salesforce Apex.
Date.valueOf()
Функция valueOf() в Apex доступна в классе Date, который принимает строку в качестве аргумента, который преобразует указанную строку в формат даты. Входная строка (параметр) включает в себя три атрибута — год, месяц и день. Все эти три объединяются/конкатенируются и передаются методу.
Синтаксис: ЗначениеOf()
Как уже было сказано, нам нужно объявить переменную класса «Дата» и передать ей строку.
Дата date_variable = date.valueOf (string_date_format);
Пример:
Шаг 1:
Пусть у нас есть строка, содержащая «Год-Месяц-День».
// Объявляем год, месяц и день один за другимСтрока Год = '2023';
Строка Месяц = '4';
Строка День = '5';
// Объединяем их все в строку
String string_type = Год + '-' + Месяц + '-' + День;
система.отладка (string_type);
Выход:
Шаг 2:
Теперь преобразуйте предыдущую строку «Дата» в «Дата» с помощью метода valueOf() из класса «Дата» Apex.
// Преобразование строки-даты в датуДата convert_date = date.valueOf (string_type);
system.debug(converted_date);
Выход:
Мы видим, что после преобразования в «Дата» он автоматически возвращает дату в формате DateTime. Он не будет учитывать время (часы:минуты:секунды), даже если вы передадите их методу valueOf(). Возвращаемый формат: ГГГГ-ММ-ДД ЧЧ:ММ:СС.
Преобразование даты в строку
Есть два способа преобразовать «Дату» в «Строку». Одним из способов, поддерживаемых Apex, является использование метода format(). Другой способ — вручную извлечь атрибуты «Дата» (год, месяц и день) и объединить их в строку. Давайте посмотрим на них один за другим.
1. Формат()
Метод format() доступен в классе «Дата» в Apex, который преобразует «Дату» в строку в формате «М/Д/ГГГГ». Мы также можем передать указанный формат в качестве параметра этому методу. Указанный формат является форматом по умолчанию.
Синтаксис:
input_date.format («format_type»)Пример:
Давайте рассмотрим предыдущий пример и преобразуем «Дату» обратно в «Строку» с помощью метода format(). Мы не предоставляем какой-либо конкретный формат для метода format().
// Объявляем год, месяц и день один за другимСтрока Год = '2023';
Строка Месяц = '4';
Строка День = '5';
// Объединяем их все в строку
String string_type = Год + '-' + Месяц + '-' + День;
// Преобразование строки-даты в дату
Дата convert_date = date.valueOf (string_type);
system.debug(converted_date);
// формат()
system.debug(converted_date.format());
Выход:
2. Использование метода класса даты
В этом сценарии мы извлекаем год, месяц и день отдельно из «Даты», используя доступные методы в классе «Дата» Apex. Затем мы объединяем эти три, чтобы вернуть «Дату» в формате «Строка».
- день() – Этот метод используется для извлечения даты из «Даты». Он возвращает целое число, указывающее дату.
- месяц() – Этот метод используется для извлечения месяца из «Даты». Он возвращает целое число, указывающее номер месяца. Мы можем сослаться на январь как 1, февраль как 2…. Декабрь как 12.
- год() – Этот метод используется для извлечения года из «Даты». Он возвращает год в четырехзначном формате.
Синтаксис:
input_date.year() + '-' + input_date.month() + '-' + input_date.day()Пример:
Преобразуйте обратно «Дату» в «Строку» в формате «ГГГГ-М-Д».
// Объявляем год, месяц и день один за другимСтрока Год = '2023';
Строка Месяц = '4';
Строка День = '5';
// Объединяем их все в строку
String string_type = Год + '-' + Месяц + '-' + День;
// Преобразование строки-даты в дату
Дата convert_date = date.valueOf (string_type);
system.debug(converted_date);
// Преобразование даты в строку
system.debug(converted_date.year() + '-' + convert_date.month() + '-' + convert_date.day());
Выход:
Практические примеры:
Давайте посмотрим, как обновить «Дату», например добавить дни, годы и месяцы к существующей дате в объектах Salesforce. Все три метода принимают целое число «n» в качестве аргумента.
1. добавить дни()
Чтобы добавить дни к существующей дате, Apex поддерживает метод addDays(), доступный в классе Date.
2. добавить месяцы ()
Чтобы добавить месяцы к существующей дате, Apex поддерживает метод addMonths(), доступный в классе Date.
3. добавитьГоды()
Чтобы добавить годы к существующей дате, Apex поддерживает метод addYears(), доступный в классе Date.
Синтаксис:
Давайте посмотрим на синтаксис этих трех методов. Здесь «n» представляет целочисленное значение.
- input_Date.addDays(n)
- input_Date.addMonths(n)
- input_Date.addYears(n)
Прежде чем перейти к примеру, обратите внимание на следующее:
- Войдите в Salesforce, перейдите в «Средство запуска приложений» и найдите «Кампания» на вкладке. Здесь мы вставляем «Название кампании» и «Дата окончания».
- Выберите «Кампании» и нажмите «Создать».
- Появится всплывающее окно для вставки данных в кампанию. Добавьте «Сообщения с подсказками Linux» под «Название кампании» и установите «Дату окончания» как 05.04.2023. Затем нажмите «Сохранить».
Мы готовы с записью. (Тип — Конференция и Статус — Запланировано придет автоматически. Оставьте это). Откроем анонимное окно в консоли разработчика.
Пример 1:
Давайте воспользуемся методом addDays(), чтобы добавить 10 дней к существующей «Дате окончания» в объекте «Кампания».
- Для этого нам сначала нужно использовать запрос SOQL, чтобы получить запись из объекта «Кампания» и сохранить эту запись в объекте «Список».
- Затем мы используем цикл «for» для итерации списка и используем метод addDays(), чтобы добавить 10 дней к «Дате окончания».
- Наконец, мы используем оператор «обновить DML», чтобы обновить «Дату окончания» в объекте «Кампания».
List
// Добавляем 10 дней к EndDate с помощью метода addDays()
for(Кампания i: запрос1){
i.EndDate = i.EndDate.addDays(10);
}
// Используйте update DML для обновления EndDate
обновить запрос1;
система.отладка(запрос1);
Выход:
Предыдущая «Дата окончания» — 5 апреля. После добавления 10 дней «Дата окончания» теперь 15 апреля.
Мы также можем проверить во вкладке «Кампания». Вернитесь назад и обновите страницу. Вы можете видеть, что «Дата окончания» обновлена.
Пример 2:
Давайте воспользуемся методом addMonths(), чтобы добавить 3 месяца к существующей «Дате окончания».
// Возвращаем Name и EndDate из Campaign, используя SOQLList
system.debug('Фактическое: '+query1);
// Добавляем 3 месяца к EndDate с помощью метода addMonths()
for(Кампания i: запрос1){
i.EndDate = i.EndDate.addMonths(3);
}
// Используйте update DML для обновления EndDate
обновить запрос1;
system.debug('Обновлено: '+query1);
Выход:
Предыдущий месяц в «Дате окончания» — апрель. После добавления 3 месяцев сейчас июль.
Пример 3:
Давайте воспользуемся методом addYears(), чтобы добавить 3 года к существующей «Дате окончания».
// Возвращаем Name и EndDate из Campaign, используя SOQLList
system.debug('Фактическое: '+query1);
// Добавляем 3 года к EndDate с помощью метода addYears()
for(Кампания i: запрос1){
i.EndDate = i.EndDate.addYears(3);
}
// Используйте update DML для обновления EndDate
обновить запрос1;
system.debug('Обновлено: '+query1);
Выход:
После добавления 3 лет к «Дате окончания» обновленный год — 2026.
Заключение
Форматировать дату в Salesforce Apex довольно просто. В рамках этого руководства мы узнали, как преобразовать «Дата» из формата «String» в «Дата» с помощью метода valueOf(), доступного в классе Apex «Date». Если вы хотите преобразовать дату обратно в строку, мы используем формат() и атрибуты даты, такие как день(), месяц() и год(). Наконец, мы закончили это руководство обсуждением операции DML над объектом «Кампания» Salesforce для обновления «Даты окончания» с использованием методов addDays(), addMonths() и addYears() с отдельными примерами.