Salesforce Apex – Định dạng ngày

Salesforce Apex Dinh Dang Ngay



Việc theo dõi thông tin chi tiết của khách hàng trong Tài khoản/Danh bạ là rất quan trọng trong Quản lý quan hệ khách hàng (CRM). Dựa trên ngày, tất cả các quy trình như mua hàng, báo giá và bảo dưỡng đều diễn ra. Hãy xem cách tạo ngày từ chuỗi trong Salesforce và chuyển đổi ngày thành chuỗi. Là một phần của hướng dẫn này, chúng ta cũng sẽ thấy các phương pháp được áp dụng trên ngày được định dạng như thêm ngày, năm, tháng, v.v., với các ví dụ.

Apex ngày lớp

Lớp ngày hỗ trợ tất cả các phương thức ngày nguyên thủy. Nó sử dụng không gian tên “System”. Chúng ta có thể sử dụng phương thức valueOf() từ lớp này để chuyển đổi chuỗi thành định dạng ngày tháng. Sau khi định dạng ngày, chúng tôi áp dụng một số phương pháp để thêm ngày, tháng, năm, v.v., vào ngày được định dạng này bằng cách sử dụng một số phương pháp cũng có sẵn trong lớp ngày này.







Đầu tiên, chúng ta sẽ xem cách chuyển đổi chuỗi thành ngày tháng bằng phương thức valueOf() trong Salesforce Apex.



Date.valueOf()

valueOf() trong Apex có sẵn trong lớp “Date”, lớp này lấy chuỗi làm đối số để chuyển đổi chuỗi đã chỉ định thành định dạng ngày. Chuỗi đầu vào (tham số) bao gồm ba thuộc tính – năm, tháng và ngày. Tất cả ba cái này được kết hợp/nối và truyền cho phương thức.



Cú pháp: ValueOf()

Như đã đề cập, chúng ta cần khai báo một biến của lớp “Date” và truyền chuỗi cho nó.





Ngày date_variable= date.valueOf(string_date_format);

Ví dụ:

Bước 1:

Hãy có một chuỗi chứa “Năm-Tháng-Ngày”.

// Khai báo năm, tháng, ngày từng cái một

Chuỗi Năm = '2023';

Chuỗi tháng = '4';

Chuỗi ngày = '5';

// Nối tất cả chúng thành một chuỗi

Chuỗi string_type = Năm + '-' + Tháng + '-' + Ngày;

system.debug(string_type);

Đầu ra:



Bước 2:

Bây giờ, hãy chuyển đổi chuỗi “Ngày” trước đó thành “Ngày” bằng cách sử dụng phương thức valueOf() từ lớp “Ngày” Apex.

// Chuyển chuỗi-Date thành Date

Ngày chuyển đổi_date = date.valueOf(string_type);

system.debug(converted_date);

Đầu ra:

Ta có thể thấy sau khi convert sang “Date” nó sẽ tự động trả về ngày ở định dạng DateTime. Nó sẽ không tính đến Thời gian (Giờ:Phút:Giây) ngay cả khi bạn chuyển những giá trị này cho phương thức valueOf(). Định dạng trả về là YYYY-MM-DD HH:MM:SS.

Chuyển đổi ngày thành chuỗi

Có hai cách để chuyển đổi “Ngày” thành “Chuỗi”. Một cách được Apex hỗ trợ là sử dụng phương thức format(). Một cách khác là trích xuất thủ công các thuộc tính “Ngày” (năm, tháng và ngày) và nối chúng thành chuỗi. Hãy xem xét từng cái một.

1. Định dạng()

Phương thức format() có sẵn trong lớp “Date” trong Apex để chuyển đổi “Date” thành chuỗi ở định dạng “M/D/YYYY”. Chúng ta cũng có thể chuyển định dạng đã chỉ định làm tham số cho phương thức này. Định dạng được chỉ định là định dạng mặc định.

Cú pháp:

input_date.format(“format_type”)

Ví dụ:

Hãy xem xét ví dụ trước và chuyển ngược lại “Ngày” thành “Chuỗi” bằng phương thức format(). Chúng tôi không cung cấp bất kỳ định dạng cụ thể nào cho phương thức format().

// Khai báo năm, tháng, ngày từng cái một

Chuỗi Năm = '2023';

Chuỗi tháng = '4';

Chuỗi ngày = '5';

// Nối tất cả chúng thành một chuỗi

Chuỗi string_type = Năm + '-' + Tháng + '-' + Ngày;

// Chuyển chuỗi-Date thành Date

Ngày chuyển đổi_date = date.valueOf(string_type);

system.debug(converted_date);

// định dạng()

system.debug(converted_date.format());

Đầu ra:

2. Sử dụng phương thức lớp ngày

Trong trường hợp này, chúng tôi trích xuất năm, tháng và ngày riêng biệt từ “Ngày” bằng cách sử dụng các phương thức có sẵn trong lớp “Ngày” Apex. Tiếp theo, chúng tôi nối ba cái này để trả về “Ngày” ở định dạng “Chuỗi”.

  1. ngày() – Phương pháp này được sử dụng để trích xuất ngày từ “Date”. Nó trả về số nguyên xác định ngày.
  2. tháng() – Phương pháp này được sử dụng để trích xuất tháng từ “Ngày”. Nó trả về số nguyên xác định số tháng. Chúng ta có thể gọi tháng 1 là 1, tháng 2 là 2…. tháng 12 như ngày 12.
  3. năm() – Phương pháp này được sử dụng để trích xuất năm từ “Ngày”. Nó trả về năm ở định dạng bốn chữ số.

Cú pháp:

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

Ví dụ:

Chuyển ngược lại “Ngày” thành “Chuỗi” ở định dạng “YYYY-M-D”.

// Khai báo năm, tháng, ngày từng cái một

Chuỗi Năm = '2023';

Chuỗi tháng = '4';

Chuỗi Ngày = '5';

// Nối tất cả chúng thành một chuỗi

Chuỗi string_type = Năm + '-' + Tháng + '-' + Ngày;

// Chuyển chuỗi-Date thành Date

Ngày chuyển đổi_date = date.valueOf(string_type);

system.debug(converted_date);

// Chuyển đổi ngày thành chuỗi

system.debug(converted_date.year() + '-' + convert_date.month() + '-' + convert_date.day());

Đầu ra:

Ví dụ thực tế:

Hãy xem cách cập nhật “Ngày” như thêm ngày, năm và tháng vào ngày hiện có trong đối tượng Salesforce. Cả ba phương thức đều lấy số nguyên “n” làm đối số.

1. addDays()

Để thêm ngày vào ngày hiện tại, Apex hỗ trợ phương thức addDays() có sẵn trong lớp “Date”.

2. addMonths()

Để thêm tháng vào ngày hiện tại, Apex hỗ trợ phương thức addMonths() có sẵn trong lớp “Date”.

3. thêmYear()

Để thêm năm vào ngày hiện tại, Apex hỗ trợ phương thức addYears() có sẵn trong lớp “Date”.

Cú pháp:

Hãy xem cú pháp của ba phương thức này. Ở đây, “n” là giá trị số nguyên.

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

Trước khi đi vào ví dụ, hãy xem xét những điều sau:

  1. Đăng nhập vào Salesforce và chuyển đến “Trình khởi chạy ứng dụng” và tìm kiếm “Chiến dịch” trong tab. Tại đây, chúng tôi chèn “Tên chiến dịch” và “Ngày kết thúc”.

  1. Chọn “Chiến dịch” và nhấp vào “Mới”.

  1. Một cửa sổ bật lên xuất hiện để chèn dữ liệu vào chiến dịch. Thêm “Bài đăng gợi ý Linux” bên dưới “Tên chiến dịch” và đặt “Ngày kết thúc” là 5/4/2023. Sau đó, nhấp vào “Lưu”.

Chúng tôi đã sẵn sàng với hồ sơ. (Loại – Hội nghị và Trạng thái – Đã lên kế hoạch sẽ tự động đến. Hãy để đó). Hãy mở cửa sổ ẩn danh trong bảng điều khiển dành cho nhà phát triển.

Ví dụ 1:

Hãy sử dụng phương thức addDays() để thêm 10 ngày vào “Ngày kết thúc” hiện có trong đối tượng “Chiến dịch”.

  1. Để làm điều này, trước tiên chúng ta cần sử dụng Truy vấn SOQL để lấy bản ghi từ đối tượng “Chiến dịch” và lưu trữ bản ghi này trong đối tượng “Danh sách”.
  2. Tiếp theo, chúng tôi sử dụng vòng lặp “for” để lặp lại danh sách và sử dụng phương thức addDays() để thêm 10 ngày vào “Ngày kết thúc”.
  3. Cuối cùng, chúng tôi sử dụng câu lệnh “cập nhật DML” để cập nhật “Ngày kết thúc” trong đối tượng “Chiến dịch”.
// Trả về Tên và Ngày kết thúc từ Chiến dịch bằng SOQL

Danh sách truy vấn1 = [CHỌN Tên,Ngày kết thúc TỪ Chiến dịch WHERE Tên = 'Bài viết gợi ý Linux'];

// Thêm 10 ngày vào EndDate bằng phương thức addDays()

for(Chiến dịch i: truy vấn1){

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

}

// Sử dụng cập nhật DML để cập nhật EndDate

cập nhật truy vấn1;

system.debug(query1);

Đầu ra:

“Ngày kết thúc” trước đó là ngày 5 tháng 4. Sau khi thêm 10 ngày vào đó, “Ngày kết thúc” hiện là ngày 15 tháng 4.

Chúng tôi cũng có thể kiểm tra trong tab “Chiến dịch”. Di chuyển trở lại và làm mới trang. Bạn có thể thấy rằng “Ngày kết thúc” được cập nhật.

Ví dụ 2:

Hãy sử dụng phương thức addMonths() để thêm 3 tháng vào “Ngày kết thúc” hiện tại.

// Trả về Tên và Ngày kết thúc từ Chiến dịch bằng SOQL

Danh sách truy vấn1 = [CHỌN Tên,Ngày kết thúc TỪ Chiến dịch WHERE Tên = 'Bài viết gợi ý Linux'];

system.debug('Thực tế: '+query1);

// Thêm 3 tháng vào EndDate bằng phương thức addMonths()

for(Chiến dịch i: truy vấn1){

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

}

// Sử dụng cập nhật DML để cập nhật EndDate

cập nhật truy vấn1;

system.debug('Đã cập nhật: '+query1);

Đầu ra:

Tháng trước trong “Ngày kết thúc” là tháng Tư. Sau khi thêm 3 tháng, bây giờ là tháng bảy.

Ví dụ 3:

Hãy sử dụng phương thức addYears() để thêm 3 năm vào “Ngày kết thúc” hiện có.

// Trả về Tên và Ngày kết thúc từ Chiến dịch bằng SOQL

Danh sách truy vấn1 = [CHỌN Tên,Ngày kết thúc TỪ Chiến dịch WHERE Tên = 'Bài viết gợi ý Linux'];

system.debug('Thực tế: '+query1);

// Thêm 3 năm vào EndDate bằng phương thức addYears()

for(Chiến dịch i: truy vấn1){

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

}

// Sử dụng cập nhật DML để cập nhật EndDate

cập nhật truy vấn1;

system.debug('Đã cập nhật: '+query1);

Đầu ra:

Sau khi thêm 3 năm vào “Ngày kết thúc”, năm cập nhật là 2026.

Phần kết luận

Định dạng ngày trong Salesforce Apex khá đơn giản. Là một phần của hướng dẫn này, chúng ta đã học cách chuyển đổi định dạng “Ngày” từ “Chuỗi” thành “Ngày” bằng cách sử dụng phương thức valueOf() có sẵn trong Lớp “Ngày” của Apex. Nếu bạn muốn chuyển ngược ngày thành chuỗi, chúng tôi sử dụng các thuộc tính định dạng() và ngày như ngày(), tháng() và năm(). Cuối cùng, chúng tôi đã kết thúc hướng dẫn này bằng cách thảo luận về hoạt động DML trên đối tượng “Chiến dịch” của Salesforce để cập nhật “Ngày kết thúc” bằng cách sử dụng các phương thức addDays(), addMonths() và addYears() với các ví dụ riêng biệt.