Fungsi strftime () di C ++ mengubah tanggal dan waktu yang diberikan dari waktu waktu kalender tertentu menjadi string karakter multibyte yang diakhiri dengan null sesuai dengan format string.
Fungsi strftime () didefinisikan dalam file header.
strftime () prototipe
size_t strftime (char * str, size_t count, const char * format, const tm * time);
Fungsi strftime () membutuhkan 4 argumen: str, count, format dan time.
Informasi tanggal dan waktu yang ditunjukkan oleh waktu diubah menjadi karakter multibyte yang diakhiri null berdasarkan nilai format dan disimpan dalam larik yang ditunjukkan oleh str. Paling banyak byte hitungan ditulis.
strftime () Parameter
- str: Pointer ke elemen pertama dari larik karakter untuk menyimpan hasilnya.
- count: Jumlah byte maksimum untuk ditulis.
- format: Pointer ke string karakter multibyte yang dihentikan null yang menentukan format konversi. Format string terdiri dari penentu konversi (dimulai dengan% dan secara opsional diikuti oleh E atau O) dan karakter biasa lainnya.
Karakter biasa termasuk karakter null terminating disalin apa adanya ke string output. strftime () penentu formatPenentu Konversi Deskripsi Fields Bekas % Menulis karakter% n Menulis karakter baris baru t Menulis karakter tab horizontal Tahun Y Menulis 4 digit tahun, misal 2011 tm_year MATA Menulis 4 digit tahun dalam representasi alternatif lokal tm_year y Menulis 2 digit terakhir tahun, rentang (00, 99) tm_year Oy Menulis 2 digit terakhir tahun dalam representasi alternatif lokal tm_year Ey Menulis tahun sebagai offset dari periode kalender alternatif lokal% EC (tergantung lokal) tm_year C Menulis 2 digit pertama tahun, kisaran (00,99) tm_year EC Menuliskan nama tahun dasar (titik) di representasi alternatif lokal, tm_year G Menulis tahun berbasis minggu ISO 8601, yaitu tahun yang berisi minggu yang ditentukan. tm_year, tm_wday, tm_yday g Menulis 2 digit terakhir tahun berbasis minggu ISO 8601, yaitu tahun yang berisi minggu tertentu (kisaran (00,99)). tm_year, tm_wday, tm_yday Bulan b Menulis nama bulan yang disingkat, misalnya Jan tm_mon h Sama seperti b tm_mon B Menulis nama bulan penuh, misal Januari tm_mon m Menulis bulan sebagai angka desimal, rentang (01,12) tm_mon Om Menulis bulan menggunakan sistem numerik alternatif lokal tm_mon Minggu U Menulis minggu dalam setahun sebagai angka desimal dari 00 hingga 53 (Minggu adalah hari pertama dalam seminggu) tm_year, tm_wday, tm_yday OU Menulis minggu dalam setahun sebagai% U menggunakan sistem numerik alternatif tm_year, tm_wday, tm_yday W Menulis minggu dalam setahun sebagai angka desimal dari 00 hingga 53 (Senin adalah hari pertama dalam seminggu) tm_year, tm_wday, tm_yday OW Menulis minggu dalam setahun sebagai% W menggunakan sistem numerik alternatif tm_year, tm_wday, tm_yday V. Menulis minggu ISO 8601 dalam setahun (kisaran (01,53)). tm_year, tm_wday, tm_yday OV Menulis minggu dalam setahun, seperti% V, menggunakan sistem numerik alternatif tm_year, tm_wday, tm_yday Hari dalam setahun / bulan j Menulis hari dalam setahun sebagai angka desimal, rentang (001.366) tm_yday d Menulis hari dalam sebulan sebagai angka desimal, rentang (01,31) tm_mday Od Menulis hari dalam sebulan, seperti% d, menggunakan sistem numerik alternatif tm_mday e Menulis hari dalam sebulan sebagai angka desimal, kisaran (1,31) tm_mday Oe Menuliskan hari dalam sebulan, seperti% e, menggunakan sistem numerik alternatif tm_mday Hari di minggu ini Sebuah Menulis nama hari kerja yang disingkat, misalnya Jum (tergantung lokal) tm_wday SEBUAH Menulis nama hari kerja lengkap, mis. Jumat (tergantung lokal) tm_wday w Menulis hari kerja sebagai angka desimal, kisaran (0-6) (Minggu adalah 0) tm_wday Aduh Menulis hari kerja sebagai% w, menggunakan sistem numerik alternatif tm_wday u Menulis hari kerja sebagai angka desimal, dengan Senin adalah 1 (format ISO 8601), rentang (1-7) tm_wday Ou Menulis hari kerja sebagai% u, menggunakan sistem numerik alternatif tm_wday Jam, menit, detik H. Menulis jam sebagai angka desimal, rentang (00,23) tm_hour OH Menulis jam sebagai% H, menggunakan sistem numerik alternatif tm_hour saya Menulis jam sebagai angka desimal, rentang (01,12) tm_hour OI Menulis jam sebagai% I, menggunakan sistem numerik alternatif tm_hour M Menulis menit sebagai angka desimal, rentang (00,59) tm_min OM Menulis menit sebagai% M, menggunakan sistem numerik alternatif tm_min S Menulis detik sebagai angka desimal, rentang (00,60) tm_sec OS Menulis detik dengan% S, menggunakan sistem numerik alternatif tm_sec Lain c Menulis rangkaian tanggal dan waktu standar, mis. Sun 17 Okt 04:41:13 2010 (tergantung lokal) semua Ec Menulis tanggal dan waktu string alternatif lokal semua x Menulis representasi tanggal lokal (tergantung lokal) semua Ex Menulis representasi tanggal alternatif lokal semua X Menulis representasi waktu lokal (tergantung lokal) semua EX Menulis representasi waktu alternatif lokal semua D Setara dengan "% m /% d /% y" tm_mon, tm_mday, tm_year F Setara dengan "% Y-% m-% d" tm_mon, tm_mday, tm_year r Menulis waktu jam 12 jam yang dilokalkan tm_jam, tm_min, tm_detik R Setara dengan "% H:% M" tm_jam, tm_min T Setara dengan "% H:% M:% S tm_jam, tm_min, tm_detik P. Penulisan am atau pm yang dilokalkan (tergantung lokal) tm_hour z menulis offset dari UTC dalam format ISO 8601 (mis. -0545), atau tanpa karakter jika informasi zona waktu tidak tersedia tm_isdst Z Menulis nama atau singkatan zona waktu, atau tidak sama sekali jika informasi zona waktu tidak tersedia (tergantung lokal) tm_isdst - waktu: Informasi tanggal dan waktu untuk dikonversi.
strftime () Nilai kembali
- Jika berhasil, fungsi strftime () mengembalikan jumlah byte yang ditulis ke dalam larik karakter yang ditunjukkan oleh str tidak termasuk penghentian ' 0'.
- Jika hitungan tercapai sebelum seluruh string dapat disimpan, 0 dikembalikan dan isinya tidak ditentukan.
Contoh: Bagaimana fungsi strftime () bekerja?
#include #include using namespace std; int main() ( time_t curr_time; tm * curr_tm; char date_string(100); char time_string(100); time(&curr_time); curr_tm = localtime(&curr_time); strftime(date_string, 50, "Today is %B %d, %Y", curr_tm); strftime(time_string, 50, "Current time is %T", curr_tm); cout << date_string << endl; cout << time_string << endl; return 0; )
Saat Anda menjalankan program, hasilnya adalah:
Hari ini adalah 21 April 2017 Waktu saat ini 11:20:42