Hàm strftime() trong C | Thư viện C chuẩn
Hàm strftime() trong C
Hàm size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr) định dạng thời gian được biểu diễn trong cấu trúc timeptr theo các qui tắc định dạng được định nghĩa trong format và được lưu trữ vào trong str.
Khai báo hàm strftime() trong C
Dưới đây là phần khai báo cho strftime() trong C:
size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr)
Tham số
str -- Đây là con trỏ tới mảng đích, nơi mà chuỗi kết quả được sao chép.
maxsize -- Đây là số ký tự tối đa để được sao chép tới str.
format -- Đây là chuỗi chứa bất cứ tổ hợp nào của các ký tự thông thường và các format specifier đặc biệt. Những format specifier này được thay thế bởi hàm này bởi các giá trị tương ứng để biểu diễn thời gian được xác định trong tm. Các format specifier là:
Specifier | Thay thế cho | Ví dụ |
---|---|---|
%a | Tên ngày trong tuần viết tắt | Sun |
%A | Tên ngày trong tuần đầy đủ | Sunday |
%b | Tên tháng viết tắt | Mar |
%B | Tên tháng đầy đủ | March |
%c | Biểu diễn date và time | Sun Aug 19 02:56:02 2012 |
%d | Ngày trong tháng (01-31) | 19 |
%H | Giờ, trong định dạng 24h (00-23) | 14 |
%I | Giờ, trong định dạng 12h (01-12) | 05 |
%j | Ngày trong năm (001-366) | 231 |
%m | Tháng, dưới dạng biểu diễn số (01-12) | 08 |
%M | Phút (00-59) | 55 |
%p | AM hoặc PM | PM |
%S | Giây (00-61) | 02 |
%U | Số tuần, có ngày Chủ nhật đầu tiên là ngày đầu tiên của tuần (00-53) | 33 |
%w | Ngày trong tuần dưới dạng biểu diễn số (0-6) | 4 |
%W | Số tuần, có ngày thứ Hai đầu tiên là ngày đầu tiên của tuần (00-53) | 34 |
%x | Biểu diễn date | 08/19/12 |
%X | Biểu diễn time | 02:50:06 |
%y | Năm, biểu diễn dưới dạng hai số cuối (00-99) | 01 |
%Y | Năm | 2012 |
%Z | Tên Timezone | CDT |
%% | Ký hiệu % | % |
timeptr -- là con trỏ trỏ tới giá trị time_t biểu diễn một calendar time, mà được chia nhỏ thành các thành phần với cấu trúc:
struct tm { int tm_sec; /* biểu diễn giây, từ 0 tới 59 */ int tm_min; /* biểu diễn phút, từ 0 tới 59 */ int tm_hour; /* biểu diễn giờ, từ 0 tới 23 */ int tm_mday; /* biểu diễn ngày của tháng, từ 1 tới 31 */ int tm_mon; /* biểu diễn tháng, từ 0 tới 11 */ int tm_year; /* biểu diễn năm, bắt đầu từ 1900 */ int tm_wday; /* ngày trong tuần, từ 0 tới 6 */ int tm_yday; /* ngày trong năm, từ 0 tới 365 */ int tm_isdst; /* biểu diễn Daylight Saving Time */ };
Trả về giá trị
Nếu chuỗi kết quả có kích cỡ nhỏ hơn kích cỡ các ký tự (bao gồm ký tự null kết thúc), thì toàn bộ ký tự được sao chép tới str (không bao gồm ký tự null kết thúc) được trả về. Nếu không, hàm trả về 0.
Ví dụ
Chương trình C sau minh họa cách sử dụng của strftime() trong C:
#include <stdio.h> #include <time.h> int main () { time_t rawtime; struct tm *info; char buffer[80]; time( &rawtime ); info = localtime( &rawtime ); strftime(buffer,80,"%x - %I:%M%p", info); printf("Date & time da dinh dang theo ham strftime la: \n|%s|\n", buffer ); return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.
Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.
Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack
Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.
Các bài Thư viện C phổ biến khác tại VietJack: