C ++ strftime () - C ++ Standart Kitaplığı

C ++ 'daki strftime () işlevi, belirli bir takvim zamanından verilen tarih ve saati, bir biçim dizesine göre boş sonlu çok baytlı bir karakter dizesine dönüştürür.

Strftime () işlevi başlık dosyasında tanımlanmıştır.

strftime () prototipi

 size_t strftime (char * str, size_t count, const char * format, const tm * time);

Strftime () işlevi 4 argüman alır: str, count, format ve time.

Zamanla gösterilen tarih ve saat bilgileri, biçimin değerine bağlı olarak boş sonlu bir çok baytlı karaktere dönüştürülür ve str ile gösterilen dizide saklanır. En çok bayt sayısı yazılır.

strftime () Parametreler

  • str: Sonucu depolamak için karakter dizisinin ilk öğesine işaretçi.
  • count: Yazılacak maksimum bayt sayısı.
  • format: Dönüştürme biçimini belirten boş sonlu çok baytlı karakter dizesine işaretçi. Biçim dizesi, dönüşüm belirtecinden (% ile başlar ve isteğe bağlı olarak E veya O ile devam eder) ve diğer sıradan karakterlerden oluşur.
    Sonlandırıcı boş karakteri içeren sıradan karakterler olduğu gibi çıktı dizesine kopyalanır. strftime () biçim belirticileri
    Dönüşüm Tanımlayıcı Açıklama Kullanılan Alanlar
    % % Karakterini yazar
    n Yeni satır karakteri yazar
    t Yatay sekme karakterini yazar
    Yıl
    Y Yılın 4 hanesini yazar, örneğin 2011 tm_year
    EY Yerel ayarın alternatif gösteriminde yılın 4 hanesini yazar tm_year
    y Yılın son 2 hanesini yazar, aralık (00, 99) tm_year
    Oy Yerelin alternatif gösteriminde yılın son 2 basamağını yazar tm_year
    Ey Yılı, yerelin alternatif takvim döneminden fark olarak yazar% EC (yerel ayara bağlı) tm_year
    C Yılın ilk 2 hanesini yazar, aralık (00,99) tm_year
    EC Yerelin alternatif gösteriminde temel yılın (dönem) adını yazar, tm_year
    G ISO 8601 hafta tabanlı yıl, yani belirtilen haftayı içeren yılı yazar. tm_year, tm_wday, tm_yday
    g Haftaya dayalı ISO 8601'in son 2 basamağını, yani belirtilen haftayı içeren yılı (aralık (00,99)) yazar. tm_year, tm_wday, tm_yday
    Ay
    b Kısaltılmış ay adını yazar, örneğin, Jan tm_mon
    h B ile aynı tm_mon
    B Tam ay adını yazar, örneğin Ocak tm_mon
    m Ayı ondalık sayı olarak yazar, aralık (01,12) tm_mon
    Om Yerelin alternatif sayısal sistemini kullanarak ayı yazar tm_mon
    Hafta
    U Yılın haftasını 00'dan 53'e kadar ondalık bir sayı olarak yazar (Pazar, haftanın ilk günüdür) tm_year, tm_wday, tm_yday
    OU Alternatif sayısal sistemi kullanarak yılın haftasını% U olarak yazar tm_year, tm_wday, tm_yday
    W Yılın haftasını 00'dan 53'e kadar ondalık bir sayı olarak yazar (Pazartesi, haftanın ilk günüdür) tm_year, tm_wday, tm_yday
    OW Alternatif sayısal sistemi kullanarak yılın haftasını% W olarak yazar tm_year, tm_wday, tm_yday
    V Yılın ISO 8601 haftasını yazar (aralık (01,53)). tm_year, tm_wday, tm_yday
    OV Alternatif sayısal sistemi kullanarak yılın haftasını% V olarak yazar tm_year, tm_wday, tm_yday
    Yılın / ayın günü
    j Yılın gününü ondalık sayı olarak yazar, aralık (001,366) tm_yday
    d Ayın gününü ondalık sayı olarak yazar, aralık (01,31) tm_mday
    Od Alternatif sayısal sistemi kullanarak ayın gününü% d olarak yazar tm_mday
    e Ayın gününü ondalık sayı olarak yazar, aralık (1,31) tm_mday
    Oe Alternatif sayısal sistemi kullanarak% e ile ayın gününü yazar tm_mday
    Haftanın günü
    a Kısaltılmış hafta içi gün adını yazar, örneğin Cuma (yerel ayara bağlı) tm_wday
    Bir Haftanın tam gün adını yazar, örneğin Cuma (yerel ayara bağlı) tm_wday
    w Hafta içi günü ondalık sayı olarak yazar, aralık (0-6) (Pazar 0'dır) tm_wday
    Ow Alternatif sayısal sistemi kullanarak haftanın gününü% w olarak yazar tm_wday
    sen Hafta içi gününü ondalık sayı olarak yazar; burada Pazartesi 1 (ISO 8601 biçimi), aralık (1-7) tm_wday
    Ou Alternatif sayısal sistemi kullanarak haftanın gününü% u olarak yazar tm_wday
    Saat, dakika, saniye
    H Saati ondalık sayı olarak yazar, aralık (00,23) tm_hour
    OH Alternatif sayısal sistemi kullanarak saati% H olarak yazar tm_hour
    ben Saati ondalık sayı olarak yazar, aralık (01,12) tm_hour
    OI Alternatif sayısal sistemi kullanarak saati% I olarak yazar tm_hour
    M Dakikayı ondalık sayı olarak yazar, aralık (00,59) tm_min
    OM Alternatif sayısal sistemi kullanarak dakikayı% M ile yazar tm_min
    S Saniyeyi ondalık sayı olarak yazar, aralık (00,60) tm_sec
    işletim sistemi Alternatif sayısal sistemi kullanarak saniyeyi% S olarak yazar tm_sec
    Diğer
    c Standart tarih ve saat dizesi yazar, örneğin Paz 17 Ekim 04:41:13 2010 (yerel ayara bağlıdır) herşey
    Ec Yerelin alternatif tarih ve saat dizesini yazar herşey
    x Yerelleştirilmiş tarih temsilini yazar (yerel ayara bağlı) herşey
    Eski Yerelin alternatif tarih temsilini yazar herşey
    X Yerelleştirilmiş zaman gösterimini yazar (yerel ayara bağlı) herşey
    EX Yerelin alternatif zaman temsilini yazar herşey
    D "% M /% d /% y" eşdeğeri tm_mon, tm_mday, tm_year
    F "% Y-% m-% d" ye eşdeğerdir tm_mon, tm_mday, tm_year
    r Yerelleştirilmiş 12 saatlik zaman yazar tm_hour, tm_min, tm_sec
    R "% H:% M" ye eşdeğerdir tm_hour, tm_min
    T "% H:% M:% S'ye eşdeğerdir tm_hour, tm_min, tm_sec
    P Yerelleştirilmiş am veya pm yazar (yerel ayara bağlı) tm_hour
    z UTC'den uzaklık olarak ISO 8601 formatında (örneğin -0545) yazar veya saat dilimi bilgisi yoksa karakter yazmaz tm_isdst
    Z Saat dilimi adını veya kısaltmasını yazar veya saat dilimi bilgisi yoksa hiçbir şey yazar (yerel ayara bağlıdır) tm_isdst
  • saat: Dönüştürülecek tarih ve saat bilgisi.

strftime () Dönüş değeri

  • Başarı durumunda, strftime () işlevi, sonlandırıcı ' 0' dahil değil, str tarafından işaret edilen karakter dizisine yazılan bayt sayısını döndürür.
  • Tüm dizge depolanmadan önce sayıya ulaşıldıysa, 0 döndürülür ve içerikler tanımsızdır.

Örnek: strftime () işlevi nasıl çalışır?

 #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; )

Programı çalıştırdığınızda, çıktı:

 Bugün 21 Nisan 2017Güncel saat 11:20:42

Ilginç makaleler...