Читать книгу 📗 "Linux программирование в примерах - Роббинс Арнольд"
time_t now; struct tm *curtime; setlocale(LC_ALL, ""); time(&now); curtime = localtime(&now); (void)strftime(buf, sizeof buf, "It is now %A, %B %d, %Y, %I:%M %p", curtime); printf("%sn", buf); printf("ctime() says: %s", ctime(&now)); exit(0);}При запуске программы мы видим, что результаты
strftime()ctime()$ <b>LC_ALL=en_US ch13-times</b> /* Время в Соединенных Штатах */It is now Friday, July 11, 2003, 10:35 AMctime() says: Fri Jul 11 10:35:55 2003$ <b>LC_ALL=it_IT ch13-times</b> /* Время в Италии */It is now venerdi, luglio 11, 2003, 10:36ctime() says: Fri Jul 11 10:36:00 2003$ <b>LC_ALL=fr_FR ch13-times</b> /* Время во Франции */It is now vendredi, juillet 11, 2003, 10:36ctime() says: Fri Jul 11 10:36:05 2003Причина отсутствия изменений в том, что
ctime()asctime()ctime()strftime()13.2.8. Другие данные локали:
nl_langinfo()Хотя ранее мы сказали, что API
catgets()nl_langinfo()struct lconv#include <nl_types.h>#include <langinfo.h>char *nl_langinfo(nl_item item);Заголовочный файл
<nl_types.h>nl_itemintenumitem<langinfo.h>strftime()Доступная информация поступает из нескольких категорий локали. В табл. 13.3 перечислены константы элементов, соответствующие категории локали и их значения.
Таблица 13.3. Значения элементов для
nl_langinfo()| Элемент | Категория | Значение |
|---|---|---|
ABDAY_1ABDAY_7 | LC_TIME | Сокращенные названия дней недели. Воскресенье является днем 1 |
ABMON_1ABMON_12 | LC_TIME | Сокращенные названия месяцев |
ALT_DIGITS | LC_TIME | Альтернативные символы для цифр; см. текст |
AM_STRPM_STR | LC_TIME | Обозначения a.m/p.m. для локали. |
CODESET | LC_TYPE | Имя кодовой страницы для локали, т.е. использующиеся набор символов и кодировка |
CRNCYSTR | LC_MONETARY | Символ местной валюты, описанный ниже |
DAY_1DAY_7 | LC_TIME | Названия дней недели. Воскресенье является днем 1 |
D_FMT | LC_TIME | Формат даты |
D_T_FMT | LC_TIME | Формат даты и времени |
ERA_D_FMT | LC_TIME | Формат даты эры. |
ERA_D_T_FMT | LC_TIME | Формат даты и времени эры. |
ERA_T_FMT | LC_TIME | Формат времени эры. |
ERA | LC_TIME | Сегменты описания эры, см. текст. |
MON_1MON_12 | LC_TIME | Названия месяцев. |
RADIXCHAR | LC_NUMERIC | Символ системы счисления. Для базы 10 это символ точки в десятичной дроби. |
THOUSEP | LC_NUMERIC | Символ-разделитель тысяч |
T_FMT_AMPM | LC_TIME | Формат времени в записи a.m/p.m. |
T_FMT | LC_TIME | Формат времени. |
YESEXPRNOEXPR | LC_MESSAGES | Строка, представляющая положительный и отрицательный ответы. |