Показувати поточну дату та час без розділових знаків


118

Наприклад, я хочу відображати поточну дату та час у такому форматі:

yyyymmddhhmmss 

Як це зробити? Схоже , що приходить самий формат дати з -, /, :і т.д.

Відповіді:


170

Ось вам:

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

Як man dateговориться вгорі, ви можете використовувати таку dateкоманду:

date [OPTION]... [+FORMAT]

Тобто ви можете надати йому параметр формату, починаючи з а +. Напевно, ви можете здогадатися про значення використовуваних символів форматування:

  • %Y є на рік
  • %m є на місяць
  • %d є на день
  • ... і так далі

Ви можете знайти цей та інші символи форматування в man date.


36

Простий приклад сценарію оболонки

#!/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


2
"`date +%Y-%m-%d %H:%M:%S`"дає меніdate: illegal time format
Sinux

6

Якщо ви використовуєте 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 - це вбудована команда і тому буде швидшою.


Для тих, хто шукає додаткову документацію щодо того, які %варіанти можна передати, це, здається, використовує dateкоманду. Отже, man dateдамо вам доступні варіанти.
електровір

4

Без пунктуації (як згадував @Burusothman):

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

O / P:

20170115072120

З розділові знаки :

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

O / P:

2017-01-15 07:25:33

0

Цікавий / смішний спосіб зробити це за допомогою розширення параметрів (потрібно bash 4.4чи новіше):

${parameter@operator} - P operator

Розширення - це рядок, який є результатом розширення значення параметра, як якщо б це був рядок підказок.

$ show_time() { local format='\D{%Y%m%d%H%M%S}'; echo "${format@P}"; }
$ show_time
20180724003251
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.