Функція strftime () у C ++ перетворює задану дату та час із заданого календарного часу у багатобайтовий рядок символів із нульовим кінцем відповідно до рядка формату.
Функція strftime () визначена у файлі заголовка.
прототип strftime ()
size_t strftime (char * str, count_t count, const char * format, const tm * time);
Функція strftime () приймає 4 аргументи: str, count, format і time.
Інформація про дату та час, на яку вказує час, перетворюється на багатобайтовий символ із нульовим закінченням на основі значення формату і зберігається в масиві, на який вказує str. Записано не більше байтів підрахунку.
Параметри strftime ()
- str: Вказівник на перший елемент масиву символів для збереження результату.
- count: Максимальна кількість байт для запису.
- формат: вказівник на багатобайтовий рядок символів із нульовим закінченням, що вказує формат перетворення. Рядок формату складається з специфікатора перетворення (починається з%, а необов'язково після нього E або O) та інших звичайних символів.
Звичайні символи, включаючи закінчувальний нульовий символ, копіюються, як і у вихідний рядок. специфікатори формату strftime ()Специфікатор перетворення Опис Використані поля % Пише символ% п Пише символ нового рядка т Пише символ горизонтальної табуляції Рік Y Записує 4 цифри року, наприклад 2011 tm_year ЕЙ Записує 4 цифри року в альтернативному поданні мови tm_year р Записує останні 2 цифри року, діапазон (00, 99) tm_year Ой Записує останні 2 цифри року в альтернативному поданні мови tm_year Ой Записує рік як зсув від альтернативного календарного періоду мови%% EC (залежить від мови) tm_year C. Записує перші 2 цифри року, діапазон (00,99) tm_year ЄС Записує назву базового року (періоду) в альтернативному поданні мови, tm_year G Пише тижневий рік за стандартом ISO 8601, тобто рік, що містить вказаний тиждень. tm_year, tm_wday, tm_yday g Записує останні 2 цифри року на основі тижня ISO 8601, тобто року, що містить зазначений тиждень (діапазон (00,99)). tm_year, tm_wday, tm_yday Місяць b Пише скорочену назву місяця, наприклад Jan tm_mon h Те саме, що b tm_mon B Пише повну назву місяця, наприклад, січень tm_mon м Записує місяць як десяткове число, діапазон (01,12) tm_mon Ом Записує місяць, використовуючи альтернативну числову систему мови tm_mon Тиждень U Записує тиждень року як десяткове число від 00 до 53 (неділя - перший день тижня) tm_year, tm_wday, tm_yday НУ Записує тиждень року як% U, використовуючи альтернативну числову систему tm_year, tm_wday, tm_yday W Записує тиждень року як десяткове число від 00 до 53 (понеділок - перший день тижня) tm_year, tm_wday, tm_yday ВЛАСНА Записує тиждень року як% W, використовуючи альтернативну числову систему tm_year, tm_wday, tm_yday V Пише ISO 8601 тиждень у році (діапазон (01,53)). tm_year, tm_wday, tm_yday О.В. Записує тиждень року як% V, використовуючи альтернативну числову систему tm_year, tm_wday, tm_yday День року / місяця j Записує день року як десяткове число, діапазон (001 366) tm_yday d Записує день місяця як десяткове число, діапазон (01,31) tm_mday Од Записує день місяця як% d, використовуючи альтернативну числову систему tm_mday e Записує день місяця як десяткове число, діапазон (1,31) tm_mday Е Записує день місяця як% e, використовуючи альтернативну числову систему tm_mday День тижня a Пише скорочену назву тижня, наприклад, п'ятниця (залежно від мови) tm_wday A Пише повну назву робочого дня, наприклад, п’ятниця (залежно від мови) tm_wday w Записує день тижня як десяткове число, діапазон (0-6) (неділя 0) tm_wday Ой Записує день тижня як% w, використовуючи альтернативну числову систему tm_wday u Записує день тижня як десяткове число, де понеділок - 1 (формат ISO 8601), діапазон (1-7) tm_wday Ou Записує день тижня як% u, використовуючи альтернативну числову систему tm_wday Година, хвилина, секунда H Записує годину як десяткове число, діапазон (00,23) tm_hour ОХ Записує годину як% H, використовуючи альтернативну числову систему tm_hour Я Записує годину як десяткове число, діапазон (01,12) tm_hour OI Записує годину як% I, використовуючи альтернативну числову систему tm_hour М Записує хвилину як десяткове число, діапазон (00,59) tm_min ОМ Записує хвилину як% M, використовуючи альтернативну числову систему tm_min S Записує друге як десяткове число, діапазон (00,60) tm_sec ОС Записує друге як% S, використовуючи альтернативну числову систему tm_sec Інший c Записує стандартний рядок дати та часу, наприклад, НД жовтня 17 04:41:13 2010 (залежно від мови) всі Ек Записує альтернативний рядок дати та часу для мови всі х Записує локалізоване представлення дати (залежно від мови) всі Напр Пише альтернативне представлення дати для мови всі X Записує локалізоване представлення часу (залежить від мови) всі ПРИКЛАД Пише альтернативне представлення часу для мови всі D Еквівалентно "% m /% d /% y" tm_mon, tm_mday, tm_year F Еквівалентно "% Y-% m-% d" tm_mon, tm_mday, tm_year р Записує локалізований 12-годинний годинник tm_hour, tm_min, tm_sec Р. Еквівалентно "% H:% M" tm_hour, tm_min Т Еквівалентно "% H:% M:% S tm_hour, tm_min, tm_sec P Пише локалізовані ранку або вечора (залежно від мови) tm_hour z записує зсув від UTC у форматі ISO 8601 (наприклад, -0545), або відсутність символів, якщо інформація про часовий пояс недоступна tm_isdst Z Записує назву або абревіатуру часового поясу, або нічого, якщо інформація про часовий пояс недоступна (залежить від мови) tm_isdst - час: інформація про дату та час для конвертації.
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