이것답변댓글에는 제가 오랫동안 사용해 왔지만 지금은 문서화되지 않은 것 같은 --rfc-3339
"숨기기" 옵션이 언급되어 있습니다.--iso-8601
옵션 문서가 텍스트에서 언제 제거되었습니까 --help
?
이 옵션이 곧 사라지나요?
답변1
date
이 옵션은 1999년(4월 8일)에 coreutils(아마도 갖고 계실 것임)에 도입되었습니다.
이 문서는 다음에서 삭제되었습니다.2005년제출서류에는 설명이 별로 없습니다.
존재하다2011년, --iso-8601에 대한 도움말이 다음 설명과 함께 다시 도입되었습니다.
We deprecated and undocumented the --iso-8601 (-I) option mostly
because date could not parse that particular format. Now that
it can, it's time to restore the documentation.
* src/date.c (usage): Document it.
* doc/coreutils.texi (Options for date): Reinstate documentation.
Reported by Hubert Depesz Lubaczewski in http://bugs.gnu.org/7444.
도움말은 버전 5.90에서 제거되었다가 버전 8.15(내 8.13에는 없음)에 다시 추가된 것으로 보이며 위의 설명을 보면 도움말이 이제 다시 돌아왔으며 조만간 사라질 것 같지 않습니다.
버전 8.31(2020년 7월 Solus에서 제공)의 매뉴얼 페이지에는 다음 두 가지 옵션이 있습니다.
-I[FMT], --iso-8601[=FMT]
output date/time in ISO 8601 format. FMT='date' for date only (the default), 'hours', 'minutes', 'sec‐
onds', or 'ns' for date and time to the indicated precision. Example: 2006-08-14T02:34:56-06:00
--rfc-3339=FMT
output date/time in RFC 3339 format. FMT='date', 'seconds', or 'ns' for date and time to the indicated
precision. Example: 2006-08-14 02:34:56-06:00
답변2
플랫폼 독립적인 경우 (거의) 완벽하게 호환됩니다. ISO 8601 날짜의 경우 다음을 사용하세요.
date +"%Y-%m-%dT%H:%M:%S%z"
결과는 다음과 같습니다.2021-01-16T23:09:44-0500
이는 macOS(BSD) 및 Linux에서 작동합니다.
기술적으로 말하면가득한규정 준수는 다음과 같아야 합니다.
date +"%Y-%m-%dT%H:%M:%S%:z"
오프셋(시간대) 필드에는 콜론 " :
" 이 포함되어 있습니다.~ 사이' %
'그리고' z
'. 이로 인해완전히ISO 8601에 대한 불만 사항을 제출할 수 있는 시간은 다음과 같습니다.2021-01-16T23:09:44-05:00
하지만 이것은아니요macOS에서 작동합니다(이 글을 쓰는 시점에서). 이는 Linux(예: GNU 사용)에서 작동합니다 date
.
~을 위한UTC시간(제로 오프셋, 역사적으로 "Zulu 시간"으로 알려져 있음)을 사용하여 -u
UTC 시간을 얻을 수 있으며 ' Z
'는아니요앞에는 " %
"(또는 콜론 - 리터럴 " Z
")이 붙습니다.
date -u +"%Y-%m-%dT%H:%M:%SZ"
결과는 다음과 같습니다.2021-01-17T04:16:14Z
답변3
--help는 실제로 최근에 업데이트되었으므로 이 옵션은 확실히 사라지지 않습니다.
-I[FMT], --iso-8601[=FMT] output date/time in ISO 8601 format.
FMT='date' for date only (the default),
'hours', 'minutes', 'seconds', or 'ns'
for date and time to the indicated precision.
Example: 2006-08-14T02:34:56-06:00
-R, --rfc-2822 output date and time in RFC 2822 format.
Example: Mon, 14 Aug 2006 02:34:56 -0600
--rfc-3339=FMT output date/time in RFC 3339 format.
FMT='date', 'seconds', or 'ns'
for date and time to the indicated precision.
Example: 2006-08-14 02:34:56-06:00
coreutils-8.27은 --rfc-2822
더 일반적인 용도로 사용되지 않습니다.--rfc-email
-R, --rfc-email output date and time in RFC 5322 format.
Example: Mon, 14 Aug 2006 02:34:56 -0600
답변4
내 생각엔 이것이 완벽하다고 생각합니다. 아마도 당신도 좋아할 것입니다.
date -u --iso-8601=ns | sed s/+00:00/Z/ | sed s/,/./
결과의 예:2022-12-10T20:44:36.753578818Z