C ++ wcsftime () - Thư viện chuẩn C ++

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

thú vị bài viết...