Shell
$ LC_TIME=ru_RU.UTF-8 date
Пт 17 фев 2023 19:52:59 +05
$
Shell
$ LC_TIME=ru_RU.UTF-8 date
Пт фев 17 20:00:59 +05 2023
$
Модератор: Bizdelnick
Shell
$ LC_TIME=ru_RU.UTF-8 date
Пт 17 фев 2023 19:52:59 +05
$
Shell
$ LC_TIME=ru_RU.UTF-8 date
Пт фев 17 20:00:59 +05 2023
$
надо доразбираться уж. Вот, например, в файле /usr/share/i18n/locales/ru_RU у меня написано:SergeyIT писал: ↑18.02.2023 01:02Когда-то подобное делал. Но как оказалось - это совсем не надо для жизни.
Локали лежат здесь вроде
/usr/share/i18n/locales/
Можно свою создать и добавить
Генерятся командой locale-gen (почитайте про нее внимательно)
При апдейте системы может изменится.
Не проще свою команду сделать через date c опциями типа формата как надо.
если по команде date выводится Пт 17 фев 2023 19:52:59 +05 получается, по умолчанию у меня используется формат, который date_fmt. Но где-то же это должно быть прописано, как то так: default date_fmtd_t_fmt "%a %d %b %Y %T"
date_fmt "%a %d %b %Y %T %Z"
d_fmt "%d.%m.%Y"
Генерируется бинарный конфиг. Так что простого решения изменить дефолтный date_fmt нет. https://www.instructables.com/Making-a-Custom-Locale-to-Change-the-Date-Format/
Shell
$ locale date_fmt
%a %b %e %r %Z %Y
$ LC_TIME=ru_RU.UTF-8 locale date_fmt
%a %d %b %Y %T %Z
$ LC_TIME=ru_RU.UTF-8 date
Сб 18 фев 2023 17:34:01 MSK
$ date +'%a %d %b %Y %T %Z'
Sat 18 Feb 2023 17:34:45 MSK
Код: Выделить всё
#include <stdlib.h>
#include <stdio.h>
#include <locale.h>
#include <langinfo.h>
int main(int argc, char *argv[])
{
printf("%s\n", nl_langinfo(D_T_FMT));
printf("%s\n", setlocale(LC_TIME, "ru_RU.UTF-8"));
printf("%s\n", nl_langinfo(D_T_FMT));
exit(EXIT_SUCCESS);
}
да реально плюнуть на всё это и делать, как вы показали. $ date +'%a %d %b %Y %T %Zolecya писала: ↑18.02.2023 17:51Я как то даже и не подозревала о разнице в выводах команды date.Генерируется бинарный конфиг. Так что простого решения изменить дефолтный date_fmt нет. https://www.instructables.com/Making-a-Custom-Locale-to-Change-the-Date-Format/
Кстати в конце страницы справки man locale есть пример ну и отсыл к man localedef. Там генерируется конфиг в домашней директории и экспортируется переменная LOCPATH для его видимости. Так что ни чего не должны испортить если вздумаете экспериментировать.
Но гарантировать совместимость выводов команды date в разных системах очень легко - применить строку формата вывода:Shell
$ locale date_fmt
%a %b %e %r %Z %Y
$ LC_TIME=ru_RU.UTF-8 locale date_fmt
%a %d %b %Y %T %Z
$ LC_TIME=ru_RU.UTF-8 date
Сб 18 фев 2023 17:34:01 MSK
$ date +'%a %d %b %Y %T %Z'
Sat 18 Feb 2023 17:34:45 MSK