Fungsi strftime () dalam C ++ menukar tarikh dan masa yang diberikan dari waktu waktu kalendar tertentu menjadi rentetan watak multibait yang ditamatkan nol mengikut rentetan format.
Fungsi strftime () ditentukan dalam fail header.
prototaip strftime ()
size_t strftime (char * str, size_t count, const char * format, const tm * time);
Fungsi strftime () mengambil 4 argumen: str, kiraan, format dan masa.
Maklumat tarikh dan waktu yang ditunjukkan oleh waktu ditukar menjadi watak multibait yang dihentikan nol berdasarkan nilai format dan disimpan dalam larik yang ditunjukkan oleh str. Sebilangan besar bait dikira ditulis.
strftime () Parameter
- str: Penunjuk ke elemen pertama dari array watak untuk menyimpan hasilnya.
- kiraan: Bilangan maksimum bait untuk ditulis.
- format: Pointer ke rentetan watak multibait tanpa nol yang menentukan format penukaran. String format terdiri daripada penentu penukaran (bermula dengan% dan opsional diikuti oleh E atau O) dan watak biasa yang lain.
Aksara biasa termasuk watak null penamat disalin seperti pada rentetan output. penentu format strftime ()Penentu Penukaran Penerangan Padang Terpakai % Menulis watak% n Menulis watak barisan baru t Menulis watak tab mendatar Tahun Y Menulis 4 digit tahun, misalnya 2011 tm_tahun MATA Menulis 4 digit tahun dalam perwakilan alternatif tempatan tm_tahun y Menulis 2 digit terakhir tahun, julat (00, 99) tm_tahun Oy Menulis 2 digit terakhir tahun dalam perwakilan alternatif tempatan tm_tahun Mata Menulis tahun sebagai pengimbangan dari tempoh kalendar alternatif tempatan% EC (bergantung kepada lokasi) tm_tahun C Menulis 2 digit pertama tahun, julat (00,99) tm_tahun SPR Menulis nama tahun asas (noktah) dalam perwakilan alternatif penduduk setempat, tm_tahun G Menulis ISO 8601 berdasarkan minggu, iaitu tahun yang mengandungi minggu yang ditentukan. tm_tahun, tm_wday, tm_yday g Menulis 2 digit terakhir ISO 8601 berdasarkan minggu, iaitu tahun yang mengandungi minggu yang ditentukan (julat (00,99)) tm_tahun, tm_wday, tm_yday Sebulan b Menulis nama bulan yang disingkat, misalnya Jan tm_mon h Sama seperti b tm_mon B Menulis nama bulan penuh, contohnya Januari tm_mon m Menulis bulan sebagai nombor perpuluhan, julat (01,12) tm_mon Ya Menulis bulan menggunakan sistem angka alternatif tempatan tm_mon Minggu U Menulis minggu dalam setahun sebagai nombor perpuluhan dari 00 hingga 53 (Ahad adalah hari pertama dalam seminggu) tm_tahun, tm_wday, tm_yday OU Menulis minggu dalam setahun sebanyak% U menggunakan sistem angka alternatif tm_tahun, tm_wday, tm_yday W Menulis minggu dalam setahun sebagai nombor perpuluhan dari 00 hingga 53 (Isnin adalah hari pertama dalam seminggu) tm_tahun, tm_wday, tm_yday OW Menulis minggu dalam setahun sebanyak% W menggunakan sistem angka alternatif tm_tahun, tm_wday, tm_yday V Menulis ISO 8601 minggu dalam setahun (julat (01,53)). tm_tahun, tm_wday, tm_yday OV Menulis minggu dalam setahun, seperti pada% V, menggunakan sistem angka alternatif tm_tahun, tm_wday, tm_yday Hari tahun / bulan j Menulis hari dalam setahun sebagai nombor perpuluhan, julat (001,366) tm_yday d Menulis hari dalam bulan sebagai nombor perpuluhan, julat (01,31) tm_mday Od Menulis hari dalam bulan, seperti pada% d, menggunakan sistem angka alternatif tm_mday e Menulis hari dalam bulan sebagai nombor perpuluhan, julat (1,31) tm_mday Oe Menulis hari dalam bulan, seperti pada% e, menggunakan sistem angka alternatif tm_mday Hari dalam seminggu a Menulis nama hari minggu yang disingkat, mis. Jum (bergantung pada tempat) tm_wday A Menulis nama hari minggu penuh, misalnya hari Jumaat (bergantung pada tempat) tm_wday w Menulis hari minggu sebagai nombor perpuluhan, julat (0-6) (Ahad adalah 0) tm_wday Aduhai Menulis hari kerja sebanyak% w, menggunakan sistem angka alternatif tm_wday awak Menulis hari kerja sebagai nombor perpuluhan, di mana Isnin adalah 1 (format ISO 8601), julat (1-7) tm_wday Aduh Menulis hari minggu sebanyak% u, menggunakan sistem angka alternatif tm_wday Jam, minit, kedua H Menulis jam sebagai nombor perpuluhan, julat (00,23) tm_jam OH Menulis jam sebanyak% H, menggunakan sistem angka alternatif tm_jam Saya Menulis jam sebagai nombor perpuluhan, julat (01,12) tm_jam OI Menulis jam sebanyak% I, menggunakan sistem angka alternatif tm_jam M Menulis minit sebagai nombor perpuluhan, julat (00,59) tm_min OM Menulis minit sebanyak% M, menggunakan sistem angka alternatif tm_min S Menulis kedua sebagai nombor perpuluhan, julat (00,60) tm_sec OS Menulis kedua sebagai% S, menggunakan sistem angka alternatif tm_sec Yang lain c Menulis rentetan tarikh dan waktu standard, misalnya Sun 17 Okt 04:41:13 2010 (bergantung pada tempat) semua Ek Menulis rentetan tarikh dan masa alternatif tempatan semua x Menulis perwakilan tarikh yang dilokalkan (bergantung pada tempat) semua Cth Menulis perwakilan tarikh alternatif tempatan semua X Menulis perwakilan masa yang dilokalkan (bergantung pada tempat) semua CEMERLANG Menulis perwakilan masa alternatif tempatan semua D Sama dengan "% m /% d /% y" tm_mon, tm_mday, tm_year F Sama dengan "% Y-% m-% d" tm_mon, tm_mday, tm_year r Menulis waktu jam 12 jam yang dilokalkan tm_jam, tm_min, tm_sec R Sama dengan "% H:% M" tm_jam, tm_min T Sama dengan "% H:% M:% S tm_jam, tm_min, tm_sec P Menulis am atau pm yang dilokalkan (bergantung pada tempat) tm_jam z menulis ofset dari UTC dalam format ISO 8601 (mis. -0545), atau tidak ada aksara jika maklumat zon waktu tidak tersedia tm_isdst Z Menulis nama atau singkatan zon waktu, atau apa-apa jika maklumat zon waktu tidak tersedia (bergantung pada tempat) tm_isdst - masa: Maklumat tarikh dan masa untuk ditukar.
strftime () Nilai pulangan
- Pada kejayaan, fungsi strftime () mengembalikan bilangan bait yang ditulis ke dalam array watak yang ditunjukkan oleh str tidak termasuk ' 0' penamatan.
- Sekiranya hitungan dicapai sebelum keseluruhan rentetan dapat disimpan, 0 dikembalikan dan isinya tidak ditentukan.
Contoh: Bagaimana fungsi strftime () berfungsi?
#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; )
Semasa anda menjalankan program, outputnya adalah:
Hari ini 21 April 2017 Masa sekarang ialah 11:20:42