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
до налаштування та широка підтримка платформ роблять її надійним та корисним інструментом для перетворення дати в рядок в мові С. Програмісти, які прийшли з мов з більш високорівневими бібліотеками для роботи з датою та часом, можуть потребувати адаптації до її низькорівневої природи, але виявлять її надзвичайно потужною та гнучкою для форматування дат та часу для різноманітних застосувань.