계정/연락처에서 고객의 세부 정보를 추적하는 것은 고객 관계 관리(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월을 1로, 2월을 2로 지칭할 수 있습니다… 12월 12일.
- 년도() – 이 방법은 “날짜”에서 연도를 추출하는 데 사용됩니다. 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)
예제로 이동하기 전에 다음을 고려하십시오.
- Salesforce에 로그인하고 '앱 시작 관리자'로 이동한 다음 탭에서 '캠페인'을 검색합니다. 여기에 '캠페인 이름'과 '종료 날짜'를 삽입합니다.
- '캠페인'을 선택하고 '새로 만들기'를 클릭합니다.
- 데이터를 캠페인에 삽입하라는 팝업이 나타납니다. '캠페인 이름' 아래에 'Linux 힌트 게시물'을 추가하고 '종료 날짜'를 2023년 4월 5일로 설정합니다. 그런 다음 '저장'을 클릭합니다.
우리는 기록을 준비했습니다. (유형 – 회의 및 상태 – 계획됨이 자동으로 표시됩니다. 그대로 두십시오). 개발자 콘솔에서 익명 창을 열어봅시다.
예 1:
addDays() 메서드를 사용하여 '캠페인' 개체의 기존 '종료 날짜'에 10일을 추가해 보겠습니다.
- 이렇게 하려면 먼저 SOQL 쿼리를 사용하여 '캠페인' 개체에서 레코드를 가져오고 이 레코드를 '목록' 개체에 저장해야 합니다.
- 다음으로 'for' 루프를 사용하여 목록을 반복하고 addDays() 메서드를 사용하여 '종료 날짜'에 10일을 추가합니다.
- 마지막으로 'DML 업데이트' 문을 사용하여 '캠페인' 개체의 '종료 날짜'를 업데이트합니다.
List
// 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
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
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 작업을 별도의 예제와 함께 설명하는 것으로 이 가이드를 마무리했습니다.