strftime
, wcsftime
, _strftime_l
, _wcsftime_l
Memformat string waktu.
Sintaks
size_t strftime(
char *strDest,
size_t maxsize,
const char *format,
const struct tm *timeptr
);
size_t _strftime_l(
char *strDest,
size_t maxsize,
const char *format,
const struct tm *timeptr,
_locale_t locale
);
size_t wcsftime(
wchar_t *strDest,
size_t maxsize,
const wchar_t *format,
const struct tm *timeptr
);
size_t _wcsftime_l(
wchar_t *strDest,
size_t maxsize,
const wchar_t *format,
const struct tm *timeptr,
_locale_t locale
);
Parameter
strDest
String output.
maxsize
strDest
Ukuran buffer, diukur dalam karakter (char
atau wchar_t
).
format
String kontrol format.
timeptr
tm
struktur data.
locale
Lokal yang akan digunakan.
Nilai hasil
strftime
mengembalikan jumlah karakter yang ditempatkan dan strDest
wcsftime
mengembalikan jumlah karakter lebar yang sesuai.
Jika jumlah total karakter, termasuk yang mengakhiri null, lebih dari maxsize
, baik strftime
dan wcsftime
mengembalikan 0 dan konten strDest
yang tidak ditentukan.
Jumlah karakter dalam strDest
sama dengan jumlah karakter harfiah dalam format
, ditambah karakter apa pun yang dapat ditambahkan melalui format
kode pemformatan. Penghentian null string tidak dihitung dalam nilai pengembalian.
Keterangan
Fungsi strftime
dan wcsftime
memformat tm
nilai timeptr
waktu sesuai dengan argumen yang disediakan format
dan menyimpan hasilnya dalam buffer strDest
. Paling banyak, maxsize
karakter ditempatkan dalam string. Untuk deskripsi bidang dalam timeptr
struktur, lihat asctime
. wcsftime
adalah karakter lebar yang setara dengan strftime
; argumen string-pointer-nya menunjuk ke string karakter lebar. Fungsi-fungsi ini berulah secara identik jika tidak.
Fungsi ini memvalidasi parameternya. Jika strDest
, , format
atau timeptr
adalah penunjuk null, atau jika tm
struktur data yang ditangani oleh timeptr
tidak valid (misalnya, jika berisi nilai di luar rentang untuk waktu atau tanggal), atau jika format
string berisi kode pemformatan yang tidak valid, handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi mengembalikan 0 dan diatur errno
ke EINVAL
.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Pemetaan rutin teks generik
TCHAR.H Rutin |
_UNICODE dan _MBCS tidak ditentukan |
_MBCS Didefinisikan |
_UNICODE Didefinisikan |
---|---|---|---|
_tcsftime |
strftime |
strftime |
wcsftime |
Argumen format
terdiri dari satu atau beberapa kode; seperti dalam printf
, kode pemformatan didahului oleh tanda persen (%
). Karakter yang tidak dimulai disalin %
tidak berubah menjadi strDest
. Kategori LC_TIME
lokal saat ini memengaruhi pemformatan output .strftime
(Untuk informasi selengkapnya tentang LC_TIME
, lihat setlocale
.) Fungsi strftime
dan wcsftime
menggunakan lokal yang saat ini diatur. Versi _strftime_l
dan _wcsftime_l
dari fungsi-fungsi ini identik kecuali bahwa fungsi tersebut mengambil lokal sebagai parameter dan menggunakannya alih-alih lokal yang saat ini diatur. Untuk informasi selengkapnya, lihat Lokal.
Fungsi strftime
mendukung kode pemformatan ini:
Kode | String pengganti |
---|---|
%a |
Nama hari kerja yang disingkat di lokal |
%A |
Nama lengkap hari kerja di lokal |
%b |
Nama bulan yang disingkat di lokal |
%B |
Nama bulan penuh di lokal |
%c |
Representasi tanggal dan waktu yang sesuai untuk lokal |
%C |
Tahun dibagi 100 dan dipotong menjadi bilangan bulat, sebagai angka desimal (00−99) |
%d |
Hari dalam sebulan sebagai angka desimal (01 - 31) |
%D |
Setara dengan %m/%d/%y |
%e |
Hari dalam sebulan sebagai angka desimal (1 - 31), di mana satu digit didahului oleh spasi |
%F |
Setara dengan %Y-%m-%d |
%g |
2 digit terakhir dari tahun berbasis minggu ISO 8601 sebagai angka desimal (00 - 99) |
%G |
Tahun berbasis minggu ISO 8601 sebagai angka desimal |
%h |
Nama bulan yang disingkat (setara %b dengan ) |
%H |
Jam dalam format 24 jam (00 - 23) |
%I |
Jam dalam format 12 jam (01 - 12) |
%j |
Hari dalam setahun sebagai angka desimal (001 - 366) |
%m |
Bulan sebagai angka desimal (01 - 12) |
%M |
Menit sebagai angka desimal (00 - 59) |
%n |
Karakter baris baru (\n ) |
%p |
Indikator A.M./P.M. lokal untuk jam 12 jam |
%r |
Waktu jam 12 jam lokal |
%R |
Setara dengan %H:%M |
%S |
Kedua sebagai angka desimal (00 - 59) |
%t |
Karakter tab horizontal (\t ) |
%T |
Setara dengan %H:%M:%S format waktu ISO 8601 |
%u |
ISO 8601 hari kerja sebagai angka desimal (1 - 7; Senin adalah 1) |
%U |
Jumlah minggu dalam setahun sebagai angka desimal (00 - 53), di mana Hari Minggu pertama adalah hari pertama dalam seminggu 1 |
%V |
Nomor minggu ISO 8601 sebagai angka desimal (00 - 53) |
%w |
Hari kerja sebagai angka desimal (0 - 6; Minggu adalah 0) |
%W |
Jumlah minggu dalam setahun sebagai angka desimal (00 - 53), di mana Senin pertama adalah hari pertama dalam seminggu 1 |
%x |
Representasi tanggal untuk lokal |
%X |
Representasi waktu untuk lokal |
%y |
Tahun tanpa abad, sebagai angka desimal (00 - 99) |
%Y |
Tahun dengan abad, sebagai angka desimal |
%z |
Offset dari UTC dalam format ISO 8601; tidak ada karakter jika zona waktu tidak diketahui |
%Z |
Baik nama zona waktu lokal atau singkatan zona waktu, tergantung pada pengaturan registri; tidak ada karakter jika zona waktu tidak diketahui |
%% |
Tanda persen |
Seperti dalam printf
fungsi , #
bendera dapat mengawali kode pemformatan apa pun. Dalam hal ini, arti kode format diubah sebagai berikut.
Memformat kode | Makna |
---|---|
%#a , %#A , %#b , %#B , %#g , %#G , %#h , %#n , %#p , %#t , %#u , %#w , %#X , %#z , %#Z , %#% |
# bendera diabaikan. |
%#c |
Representasi tanggal dan waktu yang panjang, sesuai untuk lokal. Misalnya: "Selasa, 14 Maret 1995, 12:41:29". |
%#x |
Representasi tanggal panjang, sesuai dengan lokal. Misalnya: "Selasa, 14 Maret 1995". |
%#d , %#D , %#e , %#F , %#H , %#I , %#j , %#m , %#M , %#r , %#R , %#S , %#T , %#U , %#V , %#W , %#y , %#Y |
Hapus awalan nol atau spasi (jika ada). |
MINGGU ISO 8601 dan tahun berbasis minggu yang diproduksi oleh %V
, %g
, dan %G
, menggunakan minggu yang dimulai pada hari Senin. Minggu 1 adalah minggu yang berisi hari keempat Januari, yang merupakan minggu pertama yang mencakup setidaknya empat hari dalam setahun. Jika Senin pertama tahun ini adalah hari ke-2, ke-3, atau ke-4, hari-hari sebelumnya adalah bagian dari minggu terakhir tahun sebelumnya. Untuk hari-hari tersebut, %V
digantikan oleh 53, dan keduanya %g
dan %G
digantikan oleh digit tahun sebelumnya.
Catatan
Saat menggunakan salah strftime
satu fungsi dengan pointer yang tm
dikembalikan dari gmtime
, nilai yang dicetak melalui penentu %Z
dan %z
tidak akan akurat. Ini karena tm
struktur seperti yang ditentukan oleh Standar C tidak berisi informasi untuk nama zona waktu atau offset. Sebaliknya, informasi zona waktu diisi melalui variabel global dan _dstbias
._timezone
Persyaratan
Rutin | Header yang diperlukan |
---|---|
strftime |
<time.h> |
wcsftime |
<time.h> atau <wchar.h> |
_strftime_l |
<time.h> |
_wcsftime_l |
<time.h> atau <wchar.h> |
Fungsi _strftime_l
dan _wcsftime_l
khusus Microsoft. Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
Lihat contoh untuk time
.
Baca juga
Lokal
Manajemen waktu
Manipulasi string
localeconv
setlocale
, _wsetlocale
strcoll
Fungsi
strxfrm
, wcsxfrm
, _strxfrm_l
, _wcsxfrm_l
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk