Fish Shell:
Преобразование даты в строку
Как это сделать:
Fish shell делает всё просто. Давайте отформатируем текущую дату:
set formatted_date (date "+%Y-%m-%d")
echo $formatted_date
Пример вывода:
2023-04-11
Хотите что-то более конкретное, например, день недели?
set day_of_week (date "+%A")
echo $day_of_week
Пример вывода:
Вторник
А как насчёт добавления времени? Вот дата и время в 24-часовом формате:
set date_and_time (date "+%Y-%m-%d %H:%M:%S")
echo $date_and_time
Пример вывода:
2023-04-11 21:30:47
Подробнее
В прошлом, в системах, подобных Unix, таких как Linux, использовалась команда date
, которая со временем эволюционировала и остаётся распространённой в оболочках вроде bash и zsh. Fish shell наследует эту команду, но стимулирует использование более читаемого синтаксиса без флагов для установки переменных.
Существуют альтернативы, такие как функция strftime
во многих языках программирования. Fish нативно не поддерживает это, но date
в UNIX достаточно универсален, чтобы удовлетворить большинство потребностей.
При преобразовании даты в строку используются спецификаторы формата, например, %Y
для года или %A
для дня недели, которые следуют стандарту POSIX. Команда date
использует эти спецификаторы для извлечения и форматирования конкретных частей даты.
Важно отметить, что поскольку даты и времена настолько зависят от локали и часового пояса, получаемые строки могут варьироваться, если не указать пояс особо. Можно установить часовой пояс перед вызовом date
:
set TZ 'America/New_York'
set date_with_timezone (date "+%Y-%m-%d %H:%M:%S %Z")
echo $date_with_timezone
Это гарантирует, что вы учли локальность ваших данных — деталь, которую не стоит упускать в глобализированном мире.
См. также
- Страница
man
дляdate
(онлайн-руководство) даст вам полное представление о спецификаторах формата. - Для более широкого контекста прочитайте о стандартах POSIX.
- Ознакомьтесь с официальной документацией Fish shell о переменных, чтобы лучше понять команду
set
.