Подтвердить что ты не робот

Отображать текущую дату и время без пунктуации

Например, я хочу отображать текущую дату и время в следующем формате:

yyyymmddhhmmss 

Как мне это сделать? Кажется, что большинство форматов даты имеют -, /, : и т.д.

4b9b3361

Ответ 1

Здесь вы идете:

date +%Y%m%d%H%M%S

Как man date говорит около вершины, вы можете использовать команду date следующим образом:

   date [OPTION]... [+FORMAT]

То есть вы можете указать ему параметр формата, начиная с +. Вероятно, вы можете угадать смысл используемых символов форматирования:

  • %Y - год
  • %m - в течение месяца
  • %d для дня
  • ... и т.д.

Вы можете найти это и другие символы форматирования в man date.

Ответ 2

Простой пример в оболочке script

#!/bin/bash

current_date_time="`date +%Y%m%d%H%M%S`";
echo $current_date_time;

Без препинания: - +% Y% m% d% H% M% S
С пунктуацией: - +% Y -% m -% d% H:% M:% S

Ответ 3

Если вы используете Bash, вы также можете использовать одну из следующих команд:

printf '%(%Y%m%d%H%M%S)T'       # prints the current time
printf '%(%Y%m%d%H%M%S)T' -1    # same as above
printf '%(%Y%m%d%H%M%S)T' -2    # prints the time the shell was invoked

Вы можете использовать опцию -v varname для сохранения результата в $varname вместо того, чтобы печатать его на stdout:

printf -v varname '%(%Y%m%d%H%M%S)T'

Пока команда даты всегда будет выполняться в подоболочке (т.е. в отдельном процессе), printf является встроенной командой и поэтому будет быстрее.