Salesforce Apex — формат даты

Salesforce Apex Format Daty



Отслеживание сведений о клиентах в учетных записях/контактах очень важно для управления взаимоотношениями с клиентами (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. месяц() – Этот метод используется для извлечения месяца из «Даты». Он возвращает целое число, указывающее номер месяца. Мы можем сослаться на январь как 1, февраль как 2…. Декабрь как 12.
  3. год() – Этот метод используется для извлечения года из «Даты». Он возвращает год в четырехзначном формате.

Синтаксис:

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)

Прежде чем перейти к примеру, обратите внимание на следующее:

  1. Войдите в Salesforce, перейдите в «Средство запуска приложений» и найдите «Кампания» на вкладке. Здесь мы вставляем «Название кампании» и «Дата окончания».

  1. Выберите «Кампании» и нажмите «Создать».

  1. Появится всплывающее окно для вставки данных в кампанию. Добавьте «Сообщения с подсказками Linux» под «Название кампании» и установите «Дату окончания» как 05.04.2023. Затем нажмите «Сохранить».

Мы готовы с записью. (Тип — Конференция и Статус — Запланировано придет автоматически. Оставьте это). Откроем анонимное окно в консоли разработчика.

Пример 1:

Давайте воспользуемся методом addDays(), чтобы добавить 10 дней к существующей «Дате окончания» в объекте «Кампания».

  1. Для этого нам сначала нужно использовать запрос SOQL, чтобы получить запись из объекта «Кампания» и сохранить эту запись в объекте «Список».
  2. Затем мы используем цикл «for» для итерации списка и используем метод addDays(), чтобы добавить 10 дней к «Дате окончания».
  3. Наконец, мы используем оператор «обновить DML», чтобы обновить «Дату окончания» в объекте «Кампания».
// Возвращаем Name и EndDate из Campaign, используя SOQL

List query1 = [SELECT Name,EndDate FROM Campaign WHERE Name = 'Linux Hint Posts'];

// Добавляем 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, используя SOQL

List query1 = [SELECT Name,EndDate FROM Campaign WHERE Name = 'Linux Hint Posts'];

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, используя SOQL

List query1 = [SELECT Name,EndDate FROM Campaign WHERE Name = 'Linux Hint Posts'];

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() с отдельными примерами.