구두점없이 현재 날짜 및 시간 표시


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'

date 명령은 항상 서브 쉘 (즉, 별도의 프로세스)에서 실행되지만 printf는 내장 명령이므로 더 빠릅니다.


%전달할 수 있는 옵션 에 대한 추가 문서를 찾는 사람에게는 date명령을 사용하는 것 같습니다 . 따라서 man date사용 가능한 옵션을 제공합니다.
electrovir

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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.