Hàm wcsftime () trong C ++ chuyển đổi ngày và giờ đã cho từ một thời gian lịch nhất định thành một chuỗi ký tự rộng được kết thúc bằng null theo một chuỗi định dạng.
Hàm wcsftime () được định nghĩa trong tệp tiêu đề.
nguyên mẫu wcsftime ()
size_t wcsftime (wchar_t * str, số lượng size_t, định dạng const wchar_t *, const tm * time);
Hàm wcsftime () nhận 4 đối số: str, count, format và time.
Thông tin ngày và giờ được trỏ đến theo thời gian được chuyển đổi thành một ký tự rộng được kết thúc bằng rỗng dựa trên giá trị của định dạng và được lưu trữ trong mảng rộng được trỏ tới bởi str. Nhiều nhất số byte được viết.
Tham số wcsftime ()
- str: Con trỏ đến phần tử đầu tiên của mảng ký tự rộng để lưu trữ kết quả.
- count: Số ký tự rộng tối đa để viết.
- định dạng: Con trỏ đến một chuỗi ký tự rộng được kết thúc bằng rỗng xác định định dạng chuyển đổi. Chuỗi định dạng bao gồm từ chỉ định chuyển đổi (bắt đầu bằng% và theo sau là E hoặc O tùy chọn) và các ký tự rộng thông thường khác.
Các ký tự rộng thông thường bao gồm ký tự rộng rỗng kết thúc được sao chép giống như nó vào chuỗi rộng đầu ra. Định dạng thông số cho wcsftime ()Công cụ chỉ định chuyển đổi Sự miêu tả Các trường đã sử dụng % Viết ký tự% n Viết ký tự dòng mới t Viết ký tự tab ngang Năm Y Viết 4 chữ số của năm, ví dụ: 2011 tm_year EY Viết 4 chữ số của năm trong biểu diễn thay thế của ngôn ngữ tm_year y Viết 2 chữ số cuối cùng của năm, phạm vi (00, 99) tm_year Oy Viết 2 chữ số cuối cùng của năm trong biểu diễn thay thế của ngôn ngữ tm_year Mắt Viết năm bù trừ từ chu kỳ lịch thay thế của ngôn ngữ% EC (phụ thuộc vào ngôn ngữ) tm_year C Viết 2 chữ số đầu tiên của năm, phạm vi (00,99) tm_year EC Viết tên của năm gốc (khoảng thời gian) trong biểu diễn thay thế của ngôn ngữ, tm_year G Viết theo ISO 8601 năm dựa trên tuần, tức là năm có chứa tuần được chỉ định. tm_year, tm_wday, tm_yday g Viết 2 chữ số cuối cùng của năm theo tuần ISO 8601, tức là năm có chứa tuần được chỉ định (phạm vi (00,99)). tm_year, tm_wday, tm_yday tháng b Viết tên tháng viết tắt, ví dụ: Jan tm_mon h Giống như b tm_mon B Viết tên tháng đầy đủ, ví dụ: tháng 1 tm_mon m Viết tháng dưới dạng số thập phân, phạm vi (01,12) tm_mon Om Viết tháng bằng cách sử dụng hệ thống số thay thế của ngôn ngữ tm_mon Tuần U Viết tuần trong năm dưới dạng số thập phân từ 00 đến 53 (Chủ nhật là ngày đầu tiên trong tuần) tm_year, tm_wday, tm_yday OU Viết tuần trong năm theo% U bằng cách sử dụng hệ thống số thay thế tm_year, tm_wday, tm_yday W Viết tuần trong năm dưới dạng số thập phân từ 00 đến 53 (Thứ Hai là ngày đầu tiên trong tuần) tm_year, tm_wday, tm_yday OW Viết tuần trong năm theo% W bằng cách sử dụng hệ thống số thay thế tm_year, tm_wday, tm_yday V Viết ISO 8601 tuần trong năm (phạm vi (01,53)). tm_year, tm_wday, tm_yday OV Viết tuần trong năm, theo% V, sử dụng hệ thống số thay thế tm_year, tm_wday, tm_yday Ngày trong năm / tháng j Viết ngày trong năm dưới dạng số thập phân, phạm vi (001,366) tm_yday d Viết ngày trong tháng dưới dạng số thập phân, phạm vi (01,31) tm_mday Od Viết ngày trong tháng, theo% d, sử dụng hệ thống số thay thế tm_mday e Viết ngày trong tháng dưới dạng số thập phân, phạm vi (1,31) tm_mday Oe Viết ngày trong tháng, theo% e, sử dụng hệ thống số thay thế tm_mday Ngày trong tuần a Viết tên ngày trong tuần được viết tắt, ví dụ: Thứ sáu (phụ thuộc vào ngôn ngữ) tm_wday A Viết tên đầy đủ các ngày trong tuần, ví dụ: Thứ sáu (phụ thuộc vào ngôn ngữ) tm_wday w Viết ngày trong tuần dưới dạng số thập phân, phạm vi (0-6) (Chủ nhật là 0) tm_wday Ow Viết ngày trong tuần theo% w, sử dụng hệ thống số thay thế tm_wday u Viết ngày trong tuần dưới dạng số thập phân, trong đó Thứ Hai là 1 (định dạng ISO 8601), phạm vi (1-7) tm_wday Ou Viết ngày trong tuần theo% u, sử dụng hệ thống số thay thế tm_wday Giờ, phút, giây H Viết giờ dưới dạng số thập phân, phạm vi (00,23) tm_hour OH Viết giờ theo% H, sử dụng hệ thống số thay thế tm_hour Tôi Viết giờ dưới dạng số thập phân, phạm vi (01,12) tm_hour OI Viết giờ theo% I, sử dụng hệ thống số thay thế tm_hour M Viết phút dưới dạng số thập phân, phạm vi (00,59) tm_min OM Viết phút theo% M, sử dụng hệ thống số thay thế tm_min S Viết thứ hai dưới dạng số thập phân, phạm vi (00,60) tm_sec Hệ điều hành Viết thứ hai theo% S, sử dụng hệ thống số thay thế tm_sec Khác c Viết chuỗi ngày và giờ chuẩn, ví dụ: CN 17 tháng 10 04:41:13 2010 (phụ thuộc vào ngôn ngữ) tất cả Ec Viết chuỗi ngày và giờ thay thế của ngôn ngữ tất cả x Viết biểu thị ngày được bản địa hóa (phụ thuộc vào ngôn ngữ) tất cả Ví dụ Viết biểu diễn ngày thay thế của ngôn ngữ tất cả X Viết biểu diễn thời gian được bản địa hóa (phụ thuộc vào ngôn ngữ) tất cả VÍ DỤ Viết biểu diễn thời gian thay thế của ngôn ngữ tất cả D Tương đương với "% m /% d /% y" tm_mon, tm_mday, tm_year F Tương đương với "% Y-% m-% d" tm_mon, tm_mday, tm_year r Viết thời gian đồng hồ 12 giờ được bản địa hóa tm_hour, tm_min, tm_sec R Tương đương với "% H:% M" tm_hour, tm_min T Tương đương với "% H:% M:% S tm_hour, tm_min, tm_sec P Viết am hoặc pm được bản địa hóa (phụ thuộc vào ngôn ngữ) tm_hour z ghi offset từ UTC ở định dạng ISO 8601 (ví dụ -0545) hoặc không có ký tự nào nếu thông tin múi giờ không có sẵn tm_isdst Z Viết tên hoặc chữ viết tắt của múi giờ hoặc không viết gì nếu thông tin múi giờ không có sẵn (phụ thuộc vào ngôn ngữ) tm_isdst - time: Thông tin ngày và giờ cần chuyển đổi.
wcsftime () Giá trị trả về
- Khi thành công, hàm wcsftime () trả về số lượng ký tự rộng được ghi vào mảng ký tự rộng được trỏ tới bởi str, không bao gồm L ' 0' kết thúc.
- Nếu đạt đến số lượng trước khi toàn bộ chuỗi có thể được lưu trữ, 0 sẽ được trả về và nội dung không được xác định.
Ví dụ: Hàm wcsftime () hoạt động như thế nào?
#include #include #include using namespace std; int main() ( time_t curr_time; tm * curr_tm; wchar_t date_string(100); wchar_t time_string(100); time(&curr_time); curr_tm = localtime(&curr_time); wcsftime(date_string, 50, L"Today is %B %d, %Y", curr_tm); wcsftime(time_string, 50, L"Current time is %T", curr_tm); wcout << date_string << endl; wcout << time_string << endl; return 0; )
Khi bạn chạy chương trình, đầu ra sẽ là:
Hôm nay là ngày 21 tháng 4 năm 2017 Giờ hiện tại là 14:42:45