Salesforce Apex – 날짜 형식

Salesforce Apex Naljja Hyeongsig



계정/연락처에서 고객의 세부 정보를 추적하는 것은 고객 관계 관리(CRM)에서 매우 중요합니다. 날짜를 기준으로 구매, 견적, 서비스 등의 모든 프로세스가 진행됩니다. Salesforce에서 문자열로 날짜를 만들고 날짜를 문자열로 변환하는 방법을 살펴보겠습니다. 이 자습서의 일부로 일, 년, 월 등을 추가하는 것과 같이 형식이 지정된 날짜에 적용되는 방법을 예제와 함께 볼 수도 있습니다.

Apex 날짜 클래스

날짜 클래스는 원시적인 모든 날짜 메서드를 지원합니다. 'System' 네임스페이스를 사용합니다. 이 클래스의 valueOf() 메서드를 사용하여 문자열을 날짜 형식으로 변환할 수 있습니다. 날짜 서식을 지정한 후 이 날짜 클래스에서도 사용할 수 있는 몇 가지 방법을 사용하여 이 서식이 지정된 날짜에 일, 월, 년 등을 추가하는 몇 가지 방법을 적용합니다.







먼저 Salesforce Apex에서 valueOf() 메서드를 사용하여 문자열을 날짜로 변환하는 방법을 살펴보겠습니다.



Date.valueOf()

Apex의 valueOf()는 문자열을 지정된 문자열을 날짜 형식으로 변환하는 인수로 사용하는 'Date' 클래스에서 사용할 수 있습니다. 입력 문자열(매개변수)에는 년, 월, 일의 세 가지 속성이 포함됩니다. 이 세 가지 모두 결합/연결되어 메서드로 전달됩니다.



구문: ValueOf()

이미 언급했듯이 'Date' 클래스의 변수를 선언하고 문자열을 전달해야 합니다.





날짜 date_variable= date.valueOf(string_date_format);

예:

1 단계:

'Year-Month-Day'를 포함하는 문자열을 만들어 봅시다.

// 년, 월, 일을 하나씩 선언

문자열 연도 = '2023';

문자열 월 = '4';

문자열 일자 = '5';

// 문자열로 모두 연결

문자열 string_type = 연도 + '-' + 월 + '-' + 일;

system.debug(string_type);

산출:



2 단계:

이제 Apex 'Date' 클래스의 valueOf() 메서드를 사용하여 이전 'Date' 문자열을 'Date'로 변환합니다.

// 문자열-날짜를 날짜로 변환

변환된 날짜_날짜 = date.valueOf(string_type);

system.debug(converted_date);

산출:

'날짜'로 변환한 후 자동으로 날짜를 DateTime 형식으로 반환하는 것을 볼 수 있습니다. 시간(시:분:초)은 valueOf() 메서드에 전달하더라도 고려하지 않습니다. 반환되는 형식은 YYYY-MM-DD HH:MM:SS입니다.

날짜를 문자열로 변환

'날짜'를 '문자열'로 변환하는 방법에는 두 가지가 있습니다. Apex에서 지원하는 한 가지 방법은 format() 메서드를 사용하는 것입니다. 다른 방법은 '날짜' 속성(년, 월, 일)을 수동으로 추출하여 문자열로 연결하는 것입니다. 하나씩 살펴보겠습니다.

1. 포맷()

format() 메서드는 'Date'를 'M/D/YYYY' 형식의 문자열로 변환하는 Apex의 'Date' 클래스에서 사용할 수 있습니다. 지정된 형식을 매개변수로 이 메서드에 전달할 수도 있습니다. 지정된 형식이 기본 형식입니다.

통사론:

input_date.format('형식_유형')

예:

이전 예제를 고려하고 format() 메서드를 사용하여 'Date'를 'String'으로 다시 변환해 보겠습니다. format() 메서드에 특정 형식을 제공하지 않습니다.

// 년, 월, 일을 하나씩 선언

문자열 연도 = '2023';

문자열 월 = '4';

문자열 일자 = '5';

// 문자열로 모두 연결

문자열 string_type = 연도 + '-' + 월 + '-' + 일;

// 문자열-날짜를 날짜로 변환

변환된 날짜_날짜 = date.valueOf(string_type);

system.debug(converted_date);

// 포맷()

system.debug(converted_date.format());

산출:

2. 날짜 클래스 방식 사용

이 시나리오에서는 Apex 'Date' 클래스에서 사용 가능한 메서드를 사용하여 'Date'와 별도로 연도, 월, 일을 추출합니다. 다음으로 이 세 가지를 연결하여 '문자열' 형식으로 '날짜'를 반환합니다.

  1. 낮() – 이 방법은 '날짜'에서 날짜를 추출하는 데 사용됩니다. 날짜를 지정하는 정수를 반환합니다.
  2. 월() – 이 방법은 '날짜'에서 월을 추출하는 데 사용됩니다. 월 번호를 지정하는 정수를 반환합니다. 우리는 1월을 1로, 2월을 2로 지칭할 수 있습니다… 12월 12일.
  3. 년도() – 이 방법은 “날짜”에서 연도를 추출하는 데 사용됩니다. 4자리 형식으로 연도를 반환합니다.

통사론:

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

예:

'날짜'를 'YYYY-M-D' 형식의 '문자열'로 다시 변환합니다.

// 년, 월, 일을 하나씩 선언

문자열 연도 = '2023';

문자열 월 = '4';

문자열 일자 = '5';

// 문자열로 모두 연결

문자열 string_type = 연도 + '-' + 월 + '-' + 일;

// 문자열-날짜를 날짜로 변환

변환된 날짜_날짜 = date.valueOf(string_type);

system.debug(converted_date);

// 날짜를 문자열로 변환

system.debug(변환_날짜.연도() + '-' + 변환_날짜.월() + '-' + 변환_날짜.일());

산출:

실용적인 예:

Salesforce 개체의 기존 날짜에 일, 연도 및 월을 추가하는 것과 같이 '날짜'를 업데이트하는 방법을 살펴보겠습니다. 세 가지 방법 모두 'n' 정수를 인수로 사용합니다.

1. 추가일()

기존 날짜에 날짜를 추가하기 위해 Apex는 '날짜' 클래스에서 사용할 수 있는 addDays() 메서드를 지원합니다.

2. 추가월()

기존 날짜에 월을 추가하기 위해 Apex는 '날짜' 클래스에서 사용할 수 있는 addMonths() 메서드를 지원합니다.

3. addYears()

기존 날짜에 연도를 추가하기 위해 Apex는 '날짜' 클래스에서 사용할 수 있는 addYears() 메서드를 지원합니다.

통사론:

이 세 가지 방법의 구문을 살펴보겠습니다. 여기서 'n'은 정수 값을 나타냅니다.

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

예제로 이동하기 전에 다음을 고려하십시오.

  1. Salesforce에 로그인하고 '앱 시작 관리자'로 이동한 다음 탭에서 '캠페인'을 검색합니다. 여기에 '캠페인 이름'과 '종료 날짜'를 삽입합니다.

  1. '캠페인'을 선택하고 '새로 만들기'를 클릭합니다.

  1. 데이터를 캠페인에 삽입하라는 팝업이 나타납니다. '캠페인 이름' 아래에 'Linux 힌트 게시물'을 추가하고 '종료 날짜'를 2023년 4월 5일로 설정합니다. 그런 다음 '저장'을 클릭합니다.

우리는 기록을 준비했습니다. (유형 – 회의 및 상태 – 계획됨이 자동으로 표시됩니다. 그대로 두십시오). 개발자 콘솔에서 익명 창을 열어봅시다.

예 1:

addDays() 메서드를 사용하여 '캠페인' 개체의 기존 '종료 날짜'에 10일을 추가해 보겠습니다.

  1. 이렇게 하려면 먼저 SOQL 쿼리를 사용하여 '캠페인' 개체에서 레코드를 가져오고 이 레코드를 '목록' 개체에 저장해야 합니다.
  2. 다음으로 'for' 루프를 사용하여 목록을 반복하고 addDays() 메서드를 사용하여 '종료 날짜'에 10일을 추가합니다.
  3. 마지막으로 'DML 업데이트' 문을 사용하여 '캠페인' 개체의 '종료 날짜'를 업데이트합니다.
// SOQL을 사용하여 캠페인에서 이름과 종료일을 반환합니다.

List query1 = [SELECT Name,EndDate FROM Campaign WHERE Name = 'Linux 힌트 게시물'];

// addDays() 메서드를 사용하여 EndDate에 10일을 추가합니다.

for(캠페인 i: 쿼리1){

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

}

// 업데이트 DML을 사용하여 EndDate 업데이트

업데이트 쿼리1;

system.debug(query1);

산출:

이전 '종료 날짜'는 4월 5일입니다. 여기에 10일을 추가한 후 '종료 날짜'는 이제 4월 15일입니다.

'캠페인' 탭에서도 확인할 수 있습니다. 뒤로 이동하여 페이지를 새로 고칩니다. '종료 날짜'가 업데이트된 것을 볼 수 있습니다.

예 2:

addMonths() 메서드를 사용하여 기존 '종료 날짜'에 3개월을 추가해 보겠습니다.

// SOQL을 사용하여 캠페인에서 이름과 종료일을 반환합니다.

List query1 = [SELECT Name,EndDate FROM Campaign WHERE Name = 'Linux 힌트 게시물'];

system.debug('실제: '+query1);

// addMonths() 메서드를 사용하여 EndDate에 3개월을 추가합니다.

for(캠페인 i: 쿼리1){

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

}

// 업데이트 DML을 사용하여 EndDate 업데이트

업데이트 쿼리1;

system.debug('업데이트: '+query1);

산출:

'종료일'의 이전 달은 4월입니다. 3개월을 더하면 이제 7월이다.

예 3:

addYears() 메서드를 사용하여 기존 'End Date'에 3년을 더해 보겠습니다.

// SOQL을 사용하여 캠페인에서 이름과 종료일을 반환합니다.

List query1 = [SELECT Name,EndDate FROM Campaign WHERE Name = 'Linux 힌트 게시물'];

system.debug('실제: '+query1);

// addYears() 메서드를 사용하여 EndDate에 3년을 더합니다.

for(캠페인 i: 쿼리1){

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

}

// 업데이트 DML을 사용하여 EndDate 업데이트

업데이트 쿼리1;

system.debug('업데이트: '+query1);

산출:

'종료 날짜'에 3년을 더한 후 업데이트된 연도는 2026년입니다.

결론

Salesforce Apex에서 날짜 형식을 지정하는 것은 매우 간단합니다. 이 자습서의 일부로 Apex '날짜' 클래스에서 사용할 수 있는 valueOf() 메서드를 사용하여 '날짜'를 '문자열' 형식에서 '날짜'로 변환하는 방법을 배웠습니다. 날짜를 다시 문자열로 변환하려면 format() 및 day(), month() 및 year()와 같은 날짜 속성을 사용합니다. 마지막으로 Salesforce 'Campaign' 개체에서 addDays(), addMonths() 및 addYears() 메서드를 사용하여 '종료 날짜'를 업데이트하는 DML 작업을 별도의 예제와 함께 설명하는 것으로 이 가이드를 마무리했습니다.