C ++ strftime () - C ++ стандартна библиотека

Функцията strftime () в C ++ преобразува дадената дата и час от дадено време от календарно време в многобайтни символни низове, завършващи с нула, според низ от формат.

Функцията strftime () е дефинирана в заглавния файл.

strftime () прототип

 size_t strftime (char * str, count_t count, const char * формат, const tm * време);

Функцията strftime () отнема 4 аргумента: str, count, format и time.

Информацията за датата и часа, посочена от времето, се преобразува в многобайтен символ с нула, завършваща въз основа на стойността на формата и се съхранява в масива, посочен от str. Записват се най-много байтове за преброяване.

strftime () Параметри

  • str: указател към първия елемент от масива от знаци за съхраняване на резултата.
  • count: Максимален брой байтове за запис.
  • формат: указател на многобайтни символни низове с край до нула, указващ формата на преобразуване. Форматният низ се състои от спецификатор за преобразуване (започващ с% и по желание последван от E или O) и други обикновени символи.
    Обикновените символи, включително завършващия нулев знак, се копират, както е в изходния низ. спецификатори на формат strftime ()
    Спецификатор за преобразуване Описание Използвани полета
    % Записва знака%
    н Пише символ на нов ред
    т Пише знак за хоризонтален таб
    Година
    Y. Записва 4 цифри на годината, например 2011 tm_year
    EY Записва 4 цифри на година в алтернативно представяне на локала tm_year
    у Записва последните 2 цифри от годината, диапазон (00, 99) tm_year
    О, Записва последните 2 цифри от годината в алтернативно представяне на локала tm_year
    Ей Записва годината като отклонение от алтернативния календарен период% EC (зависи от локала) tm_year
    ° С Пише първите 2 цифри от годината, диапазон (00,99) tm_year
    ЕО Записва име на базовата година (период) в алтернативното представяне на локала, tm_year
    G Пише ISO 8601 седмична година, т.е. годината, която съдържа посочената седмица. tm_year, tm_wday, tm_yday
    ж Записва последните 2 цифри от годината, базирана на ISO 8601, т.е. годината, която съдържа посочената седмица (диапазон (00,99)). tm_year, tm_wday, tm_yday
    Месец
    б Пише съкратено име на месец, например Jan tm_mon
    з Същото като b tm_mon
    Б. Пише пълното име на месеца, например януари tm_mon
    м Записва месеца като десетично число, диапазон (01,12) tm_mon
    Ом Записва месец, използвайки алтернативната числова система на локала tm_mon
    Седмица
    U Записва седмицата в годината като десетично число от 00 до 53 (неделя е първият ден от седмицата) tm_year, tm_wday, tm_yday
    OU Записва седмицата в годината като% U, използвайки алтернативната цифрова система tm_year, tm_wday, tm_yday
    W Записва седмицата в годината като десетично число от 00 до 53 (понеделник е първият ден от седмицата) tm_year, tm_wday, tm_yday
    OW Записва седмицата в годината като% W, използвайки алтернативната цифрова система tm_year, tm_wday, tm_yday
    V Пише ISO 8601 седмица в годината (диапазон (01,53)). tm_year, tm_wday, tm_yday
    OV Записва седмица в годината като% V, използвайки алтернативната цифрова система tm_year, tm_wday, tm_yday
    Ден от годината / месеца
    j Записва деня от годината като десетично число, диапазон (001,366) tm_yday
    д Записва деня от месеца като десетично число, диапазон (01,31) tm_mday
    Од Записва ден от месеца като% d, използвайки алтернативната цифрова система tm_mday
    д Записва деня от месеца като десетично число, диапазон (1,31) tm_mday
    Oe Записва ден от месеца като% e, използвайки алтернативната цифрова система tm_mday
    Ден от седмицата
    а Пише съкратено име на делничния ден, например петък (в зависимост от локала) tm_wday
    A Пише пълното име на делничния ден, например петък (в зависимост от локала) tm_wday
    w Записва делничния ден като десетично число, диапазон (0-6) (неделя е 0) tm_wday
    Ооо Пише делничния ден като% w, използвайки алтернативната цифрова система tm_wday
    u Записва делничния ден като десетично число, където понеделник е 1 (формат ISO 8601), диапазон (1-7) tm_wday
    Оу Пише делничния ден като% u, използвайки алтернативната цифрова система tm_wday
    Час, минута, секунда
    З. Записва час като десетично число, диапазон (00,23) tm_hour
    ОХ Записва час като от% H, използвайки алтернативната цифрова система tm_hour
    Аз Записва час като десетично число, диапазон (01,12) tm_hour
    OI Записва час като от% I, използвайки алтернативната цифрова система tm_hour
    М Записва минута като десетично число, диапазон (00,59) tm_min
    ОМ Записва минута като% M, използвайки алтернативната цифрова система tm_min
    С Пише второ като десетично число, диапазон (00,60) tm_sec
    операционна система Пише второ като% S, използвайки алтернативната цифрова система tm_sec
    Други
    ° С Writes standard date and time string, e.g. Sun Oct 17 04:41:13 2010 (locale dependent) all
    Ec Writes locale's alternative date and time string all
    x Writes localized date representation (locale dependent) all
    Ex Writes locale's alternative date representation all
    X Writes localized time representation (locale dependent) all
    EX Writes locale's alternative time representation all
    D Equivalent to "%m/%d/%y" tm_mon, tm_mday, tm_year
    F Equivalent to "%Y-%m-%d" tm_mon, tm_mday, tm_year
    r Writes localized 12-hour clock time tm_hour, tm_min, tm_sec
    R Equivalent to "%H:%M" tm_hour, tm_min
    T Equivalent to "%H:%M:%S tm_hour, tm_min, tm_sec
    P Writes localized a.m. or p.m. (locale dependent) tm_hour
    z writes offset from UTC in the ISO 8601 format (e.g. -0545), or no characters if the time zone information is not available tm_isdst
    Z Записва име или съкращение на часовата зона или нищо, ако информацията за часовата зона не е налична (в зависимост от локала) tm_isdst
  • time: Датата и часът за преобразуване.

strftime () Върната стойност

  • При успех функцията strftime () връща броя на байтовете, записани в символния масив, посочен от str, без да включва завършващото ' 0'.
  • Ако броят е достигнат, преди да може да се съхрани целият низ, се връща 0 и съдържанието е недефинирано.

Пример: Как работи функцията strftime ()?

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

Когато стартирате програмата, изходът ще бъде:

 Днес е 21 април 2017 г. Текущото време е 11:20:42

Интересни статии...