date 명령을 사용하여 Unix에서 특정 날짜를 표시하려고 하는데 오늘이 아닌 날짜를 표시하는 방법을 모르겠습니다.
예를 들어, 표시하려고 하면 July 4, 2011
다음을 사용합니다.
$ date +"%B %d, %Y"
그런데 오늘 날짜가 계속 이런 형식으로 나오네요. 원하는 날짜를 표시하려면 어떻게 변경하나요?
답변1
Linux를 실행하는 경우:
date +"%B %d, %Y" -d 2011-07-04
~에서man date
:
-d, --date=STRING
display time described by STRING, not 'now'
답변2
일반적으로 date
이는 이 목적을 위한 도구가 아닙니다(GNU Date와 같은 일부 구현에서는 이를 비표준 확장으로 가질 수 있음).
이식 가능한 날짜 조작을 원할 경우 할 수 있는 최선의 방법은 해당 모듈 perl
(거의 모든 비임베디드 Unix에 설치됨) 의 및 기능을 사용하는 것입니다 . 사용자 친화적인 다른 날짜 조작 모듈이 많이 있지만 일반적으로 적어도 이전 버전에서는 기본적으로 설치되지 않습니다 .POSIX
strftime
mktime
perl
perl
perl -MPOSIX -le 'print strftime "%B %d, %Y", @ARGV' 0 0 0 4 7 "$((2011 - 1900))"