Bash에서 날짜 형식 설정

Bash에서 날짜 형식 설정

스크립트에서 bash의 날짜 형식을 지정하고 싶습니다.

형식은 다음과 같습니다.2016-10-05T12:18:36.890+02:00

나는 현재 다음을 사용하고 있습니다 :$(date +%Y%m%d%H%M%S)

이 작업을 수행하는 방법을 아시나요?

답변1

당신이 찾고 있는 것은 날짜를 ISO 8601 형식으로 형식화하는 것입니다.

$(date -Is)

IISO 형식의 경우 s날짜 및 시간입니다.

답변2

GNU 사용 date:

$ date +%FT%T.%3N%:z
2017-06-30T13:00:54.566+01:00

bash내장 함수를 사용하면 가장 가까운 결과를 얻을 수 있습니다.

$ printf -v date '%(%FT%T%z)T' -1
$ printf '%s\n' "${date%??}:${date: -2}"
2017-06-30T13:00:54+01:00

bash1초 미만의 정밀도를 지원하지 않습니다 .

최신 버전을 사용하세요 zsh:

$ zmodload zsh/datetime
$ strftime -s date '%FT%T.%3.%z'
$ printf '%s\n' $date[1,-3]:$date[-2,-1]
2017-06-30T13:00:54.566+01:00

답변3

다음을 시도해 볼 수 있습니다.

date +%Y-%m-%d-T%H:%M:%S%z

답변4

요청한 형식은 다음과 같이 작성할 수 있습니다.

$ date +%Y-%m-%dT%H:%M:%S%z       # similar to your previous +%Y%m%d%H%M%S
2016-10-05T11:18:36+0100

$ date +'%FT%T.%3N%:z'            # shorter with GNU milliseconds
2016-10-05T11:18:36.247+01:00

$ ( t=$EPOCHREALTIME; u=${t#*.};
    printf "%(%FT%T)T.%s%(%z)T\n" "${t%.*}" "${u%???}" )  # Pure bash 5.0+
2016-10-05T11:18:36.450+0100

관련 정보