strftime
, wcsftime
, _strftime_l
, _wcsftime_l
Zaman dizesini biçimlendirme.
Sözdizimi
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
);
Parametreler
strDest
Çıkış dizesi.
maxsize
Arabellek boyutu strDest
, karakter (char
veya wchar_t
) olarak ölçülür.
format
Biçim denetimi dizesi.
timeptr
tm
veri yapısı.
locale
Kullanılacak yerel ayar.
Dönüş değeri
strftime
içine yerleştirilen strDest
karakter sayısını döndürür ve wcsftime
buna karşılık gelen geniş karakter sayısını döndürür.
Sonlandırıcı null dahil olmak üzere toplam karakter sayısı değerinden maxsize
fazlaysa, hem hem de strftime
wcsftime
0 döndürür ve içindekiler strDest
belirsizdir.
içindeki strDest
karakter sayısı, içindeki format
değişmez karakter sayısına ve biçimlendirme kodları aracılığıyla eklenebilen tüm karakterlere format
eşittir. Dizenin sonlandırıcı null değeri, dönüş değerinde sayılmaz.
Açıklamalar
ve işlevleri, sağlanan format
bağımsız değişkene göre içindeki timeptr
zaman değerini biçimlendirip tm
sonucu arabellekte depolarstrDest
.wcsftime
strftime
En çok karakterler maxsize
dizeye yerleştirilir. Yapıdaki timeptr
alanların açıklaması için bkz asctime
. . wcsftime
, öğesinin geniş karakter eşdeğeridir strftime
; dize işaretçisi bağımsız değişkeni geniş karakterli bir dizeye işaret eder. Bu işlevler aynı şekilde davranır.
Bu işlev parametrelerini doğrular. , veya null bir işaretçiyse veya tarafından ele alınan timeptr
veri yapısı geçersizse tm
(örneğin, saat veya tarih için aralık dışı değerler içeriyorsa) veya format
dize geçersiz bir biçimlendirme kodu içeriyorsa, Parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisi çağrılır.timeptr
format
strDest
Yürütmenin devam etmesi için izin verilirse, işlev 0 döndürür ve olarak EINVAL
ayarlanırerrno
.
Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.
Genel metin yordamı eşlemeleri
TCHAR.H olağan |
_UNICODE ve _MBCS tanımlanmadı |
_MBCS tanımlanan |
_UNICODE tanımlanan |
---|---|---|---|
_tcsftime |
strftime |
strftime |
wcsftime |
format
Bağımsız değişken bir veya daha fazla koddan oluşur; 'de printf
olduğu gibi, biçimlendirme kodlarının önünde bir yüzde işareti (%
) bulunur. ile %
başlamayan karakterler yerine kopyalanır strDest
. LC_TIME
Geçerli yerel ayarın kategorisi, çıkış biçimlendirmesini strftime
etkiler. (hakkında LC_TIME
daha fazla bilgi için bkz. setlocale
.) strftime
ve wcsftime
işlevleri, şu anda ayarlanmış olan yerel ayarı kullanır. _strftime_l
Bu işlevlerin ve _wcsftime_l
sürümleri aynıdır, ancak yerel ayarı parametre olarak alır ve şu anda ayarlanmış yerel ayar yerine bunu kullanırlar. Daha fazla bilgi için bkz . Yerel Ayar.
İşlevler strftime
şu biçimlendirme kodlarını destekler:
Kod | Değiştirme dizesi |
---|---|
%a |
Yerel ayarda kısaltılmış hafta içi adı |
%A |
Yerel ayarda tam haftanın günü adı |
%b |
Yerel ayarda kısaltılmış ay adı |
%B |
Yerel ayarda tam ay adı |
%c |
Yerel ayar için uygun tarih ve saat gösterimi |
%C |
Yıl 100'e bölündü ve ondalık sayı (00−99) olarak bir tamsayıya kesildi |
%d |
Ondalık sayı olarak ayın günü (01 - 31) |
%D |
Eşdeğer %m/%d/%y |
%e |
Ondalık sayı olarak ayın günü (1 - 31), burada tek basamakların önünde boşluk vardır |
%F |
Eşdeğer %Y-%m-%d |
%g |
ISO 8601 hafta tabanlı yılın ondalık sayı olarak son 2 basamağı (00 - 99) |
%G |
Ondalık sayı olarak ISO 8601 hafta tabanlı yıl |
%h |
Kısaltılmış ay adı (ile %b eşdeğer) |
%H |
24 saatlik biçimde saat (00 - 23) |
%I |
12 saatlik biçimde saat (01 - 12) |
%j |
Ondalık sayı olarak yılın günü (001 - 366) |
%m |
Ondalık sayı olarak ay (01 - 12) |
%M |
Ondalık sayı olarak dakika (00 - 59) |
%n |
Yeni satır karakteri (\n ) |
%p |
12 saatlik saat için yerel ayarın A.M./P.M. göstergesi |
%r |
Yerel ayarın 12 saatlik saati |
%R |
Eşdeğer %H:%M |
%S |
Ondalık sayı olarak ikinci (00 - 59) |
%t |
Yatay sekme karakteri (\t ) |
%T |
eşdeğeri %H:%M:%S , ISO 8601 saat biçimi |
%u |
ISO 8601 ondalık sayı olarak haftanın günü (1 - 7; Pazartesi 1) |
%U |
Ondalık sayı olarak yılın hafta numarası (00 - 53), burada ilk Pazar, haftanın ilk günüdür 1 |
%V |
ISO 8601 ondalık sayı olarak hafta sayısı (00 - 53) |
%w |
Ondalık sayı olarak hafta içi (0 - 6; Pazar 0) |
%W |
Ondalık sayı olarak yılın hafta numarası (00 - 53), burada ilk Pazartesi haftanın ilk günüdür 1 |
%x |
Yerel ayar için tarih gösterimi |
%X |
Yerel ayar için zaman gösterimi |
%y |
Yüzyılsız yıl, ondalık sayı olarak (00 - 99) |
%Y |
Ondalık sayı olarak, yüzyıllı yıl |
%z |
ISO 8601 biçiminde UTC'den uzaklık; saat dilimi bilinmiyorsa karakter yok |
%Z |
Kayıt defteri ayarlarına bağlı olarak yerel ayarın saat dilimi adı veya saat dilimi kısaltması; saat dilimi bilinmiyorsa karakter yok |
%% |
Yüzde işareti |
İşlevde printf
olduğu gibi, bayrak herhangi bir biçimlendirme kodunun ön ekini #
alabilir. Bu durumda, biçim kodunun anlamı aşağıdaki gibi değiştirilir.
Kodu biçimlendirme | Anlamı |
---|---|
%#a , %#A , %#b , , %#B , %#g , %#G , , %#h , %#n , %#p , %#t , %#u , %#z %#w %#X , %#Z ,%#% |
# bayrağı yoksayılır. |
%#c |
Yerel ayar için uygun olan uzun tarih ve saat gösterimi. Örneğin: "Salı, 14 Mart 1995, 12:41:29". |
%#x |
Yerel ayara uygun uzun tarih gösterimi. Örneğin: "14 Mart 1995 Salı". |
%#d , , %#D %#e , , %#F , %#H , %#I , %#j , , %#m , %#M , %#r , %#R , , %#S , , %#y %#W %#V %#T %#U %#Y |
Baştaki sıfırları veya boşlukları (varsa) kaldırın. |
, %g
ve tarafından %V
üretilen ISO 8601 hafta ve %G
hafta tabanlı yıl, Pazartesi günü başlayan bir hafta kullanır. 1. hafta, yılın en az dört gününü içeren ilk hafta olan Ocak ayının dördüncü gününü içeren haftadır. Yılın ilk Pazartesi günü 2., 3. veya 4. ise, önceki günler önceki yılın son haftasının bir parçasıdır. Bu günler %V
için 53 ile değiştirilir ve her ikisi de %g
%G
önceki yılın basamakları ile değiştirilir.
Not
İşlevlerden strftime
birini öğesinden gmtime
döndürülen bir tm
işaretçiyle kullanırken ve %z
tanımlayıcıları aracılığıyla %Z
yazdırılan değerler doğru olmaz. Bunun nedeni tm
, C Standardı tarafından belirtilen yapının saat dilimi adı veya uzaklık bilgilerini içermemesidir. Bunun yerine, saat dilimi bilgileri genel değişkenler _timezone
ve _dstbias
aracılığıyla doldurulur.
Gereksinimler
Yordam | Gerekli başlık |
---|---|
strftime |
<time.h> |
wcsftime |
<time.h> veya <wchar.h> |
_strftime_l |
<time.h> |
_wcsftime_l |
<time.h> veya <wchar.h> |
ve _wcsftime_l
işlevleri Microsoft'a _strftime_l
özeldir. Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
örneğine time
bakın.
Ayrıca bkz.
Yerel ayar
Zaman yönetimi
Dize işleme
localeconv
setlocale
, _wsetlocale
strcoll
işlevleri
strxfrm
, wcsxfrm
, _strxfrm_l
, _wcsxfrm_l