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그리고.-IminutesUTC 오프셋이 있는 시간도 포함합니다.
$ 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'
다른 답변을 한 단계 더 진행하면 ~/.bashrc 또는 ~/.zshrc에 함수를 추가하여 날짜를 추가할 수 있습니다.-I플래그:
date() {
if [ "$1" = "-I" ]; then
command date "+%Y-%m-%dT%H:%M:%S%z"
else
command date "$@"
fi
}
이건 Bash의 특징이 아니라date바이너리Linux 에서는 일반적으로 GNU coreutils 버전이 있습니다.date단, OSX에서는 BSD 레거시 유틸리티를 사용할 수 있습니다.GNU 버전은 옵션 패키지로 설치할 수 있습니다.또한 교환품을 롤링할 수도 있습니다.Perl에서는 간단한 원라이너로 해야 한다고 생각합니다.
미리 컴파일된 것이 있습니다.coreutilsMac OS X용 패키지는 다음 사이트에서 구할 수 있습니다.
http://rudix.org/packages-abc.html#coreutils 를 참조해 주세요.
파일을 저장할 때 Linux에서 "date - I"를 사용합니다.ex: x를 누릅니다.date -IMacOS는 'date +%F'이지만 파일을 저장할 때마다 입력하는 것은 조금 어색합니다.그래서 에일리어스 "det='date +%F'"를 설정하고 x를 터치합니다.dt날짜를 알려줘요
언급URL : https://stackoverflow.com/questions/7216358/date-command-on-os-x-doesnt-have-iso-8601-i-option
'programing' 카테고리의 다른 글
| Git에서 특정 파일을 무시하는 방법 (0) | 2023.04.16 |
|---|---|
| export sqlite To excel/csv 파일을 안드로이드로 구현하려면 어떻게 해야 합니까? (0) | 2023.04.16 |
| NSDate를 NSString으로 변환 (0) | 2023.04.16 |
| 첫 번째 인수를 제외한 모든 인수를 처리합니다(bash 스크립트에서). (0) | 2023.04.16 |
| 컨트롤 그룹의 글꼴 크기를 자동으로 조정하려면 어떻게 해야 합니까? (0) | 2023.04.16 |