Перетворення дати в рядок

C:
Перетворення дати в рядок

Як це робити:

Для цієї мети зазвичай використовується функція strftime з бібліотеки <time.h>. Вона дозволяє форматувати дату та час різними способами, вказуючи специфікатори формату. Ось швидкий приклад:

#include <stdio.h>
#include <time.h>

int main() {
    char dateStr[100];
    time_t now = time(NULL);
    struct tm *ptm = localtime(&now);

    // Перетворення дати та часу на рядок (наприклад, "Wed Jun 30 21:49:08 2021")
    strftime(dateStr, sizeof(dateStr), "%a %b %d %H:%M:%S %Y", ptm);
    
    printf("Поточна дата та час: %s\n", dateStr);
    return 0;
}

Приклад виводу може виглядати так:

Поточна дата та час: Wed Jun 30 21:49:08 2021

Ви можете налаштувати формат, змінивши специфікатори формату, передані в strftime. Наприклад, щоб отримати дату в форматі YYYY-MM-DD, ви б використали "%Y-%m-%d".

Поглиблений огляд

Функція strftime та бібліотека <time.h> є частиною стандартної бібліотеки мови C, яка датується оригінальним стандартом ANSI C (C89/C90). Хоча цей підхід простий і підтримується на багатьох платформах, в порівнянні з сучасними мовами програмування, які пропонують більш інтуїтивно зрозумілі бібліотеки для роботи з датами та часом, він може здатися низькорівневим і громіздким.

Важливо зазначити, що, хоча функції часу стандартної бібліотеки C широко підтримуються і відносно прості у використанні, вони не мають деяких більш складних можливостей маніпулювання часовими поясами та інтернаціоналізації, які знаходяться в бібліотеках новіших мов або у сторонніх бібліотеках С, таких як Міжнародні компоненти для Unicode (ICU).

Проте, здатність функції strftime до налаштування та широка підтримка платформ роблять її надійним та корисним інструментом для перетворення дати в рядок в мові С. Програмісти, які прийшли з мов з більш високорівневими бібліотеками для роботи з датою та часом, можуть потребувати адаптації до її низькорівневої природи, але виявлять її надзвичайно потужною та гнучкою для форматування дат та часу для різноманітних застосувань.