OS X의`date` 명령에는 ISO 8601`-I` 옵션이 없습니까?
Bash 스크립트에서 현재 날짜 시간을 ISO 8601 형식 (바람직하게는 UTC)으로 인쇄하고 싶습니다. 이것은 다음과 같이 간단해야합니다 date -I
.
http://ss64.com/bash/date.html
그러나 이것은 내 Mac에서 작동하지 않는 것 같습니다.
$ date -I
date: illegal option -- I
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
[-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]
실제로이 man date
옵션을 나열하지 않습니다.
왜 이것이 ISO 8601 형식으로 날짜를 인쇄하는지 또는 다른 (쉬운) 방법인지 알고 있습니까? 감사!
당신은 사용할 수 있습니다
date "+%Y-%m-%d"
또는 완전한 ISO-8601 호환 날짜 의 경우 다음 형식 중 하나를 사용하십시오.
date -u +"%Y-%m-%dT%H:%M:%SZ"
산출:
2011-08-27T23:22:37Z
또는
date +%Y-%m-%dT%H:%M:%S%z
산출:
2011-08-27T15:22:37-0800
GNU의 날짜 date -I
와 동일 date +%F
하고, -Iseconds
그리고 -Iminutes
UTC 오프셋과도 시간을 포함한다.
$ date +%F # -I or +%Y-%m-%d
2013-05-03
$ date +%FT%T%z # -Iseconds or +%Y-%m-%dT%H:%M:%S%z
2013-05-03T15:59:24+0300
$ date +%FT%H:%M # -Iminutes or +%Y-%m-%dT%H:%M%z
2013-05-03T15:59+0300
-u
같다 TZ=UTC
. +00:00
로 교체 할 수 있습니다 Z
.
$ date -u +%FT%TZ
2013-05-03T12:59:24Z
유효한 ISO 8601 날짜 또는 시간 형식이기도합니다.
20130503T15 (%Y%m%dT%M)
2013-05 (%Y%m)
2013-W18 (%Y-W%V)
2013-W18-5 (%Y-W%V-%u)
2013W185 (%YW%V%u)
2013-123 (%Y-%j, ordinal date)
2013 (%Y)
1559 (%H%M)
15 (%H)
15:59:24+03 (UTC offset doesn't have to include minutes)
이것들은 아닙니다 :
2013-05-03 15:59 (T is required in the extended format)
201305 (it could be confused with the YYMMDD format)
20130503T15:59 (basic and exteded formats can't be mixed)
GNU와 BSD 날짜 모두에서 작동하는 간단한 대안은 다음과 같습니다.
date -u +%FT%T%z
coreutils 패키지는 GNU 버전의 도구를 제공합니다. 설치하기 위해서:
$ brew install coreutils
제공되는 내용을 볼 수 있습니다.
$ brew list coreutils
날짜와 함께 제공됩니다.
$ brew list coreutils | grep date
이것은 표준 GNU 날짜 명령이므로 -I 스위치를 사용합니다.
$ gdate -I
2016-08-09
일반적인 date
형식 지정 옵션을 사용하십시오.
date '+%Y-%m-%d'
편집 : 시간과 UTC를 포함하려면 다음과 같습니다.
date -u -Iseconds
date -u '+%Y-%m-%dT%k:%M:%S%z'
Bash의 기능이 아니며 date
바이너리 의 기능입니다 . Linux에서는 일반적으로 GNU coreutils 버전이 date
있지만 OSX에는 BSD 레거시 유틸리티가 있습니다. GNU 버전은 반드시 옵션 패키지로 설치하거나 직접 교체 할 수 있습니다. 예를 들어 Perl과 같이 간단한 단일 라이너 여야한다고 생각합니다.
Taking the other answers one step further, you could add a function to your ~/.bashrc or ~/.zshrc to add the date -I
flag:
date() {
if [ "$1" = "-I" ]; then
command date "+%Y-%m-%dT%H:%M:%S%z"
else
command date "$@"
fi
}
There's a precompiled coreutils
package for Mac OS X available at:
http://rudix.org/packages-abc.html#coreutils.
참고URL : https://stackoverflow.com/questions/7216358/date-command-on-os-x-doesnt-have-iso-8601-i-option
'Programing' 카테고리의 다른 글
클릭 대신 부트 스트랩 팝 오버가 호버에서 나타나거나 사라지도록하십시오. (0) | 2020.05.22 |
---|---|
두 개의 열과 자동 크기 조정 된 이미지가있는 그리드 뷰 (0) | 2020.05.22 |
mysql 데이터베이스에서 문자열의 모든 항목 검색 (0) | 2020.05.22 |
.NET에서 WebClient와 HTTPWebRequest 클래스 사이에는 어떤 차이점이 있습니까? (0) | 2020.05.21 |
apt-get으로 설치 한 경우에도 docker 명령을 찾을 수 없습니다 (0) | 2020.05.21 |