다음과 같은 날짜 문자열이 제공됩니다: 2022-03-28T23:40:49.721Z
X시간을 추가하려고 합니다.
기능은 다음과 비슷해 보입니다.
addHours()
{
dateString=$1
hours=$2
return date -d 'dateString + $hours hours' +'%Y-%m-%dT%H:%M:%S.%NZ'
}
내 문제는 "T"가 문제를 일으키고 잘못된 날짜 구조가 계속 표시된다는 것입니다.
답변1
유닉스에서는 이것이 유효합니다:
date -d '2022-03-28T23:40:49.721Z +6 hours' +'%Y:%m:%dT%H:%M:%S.%NZ'
하지만 Mac에서는 타임스탬프로 변환하고 계산을 수행한 다음 다시 변환해야 합니다.
dateFormatter()
{
date -jf "%s" $1 +"%Y-%m-%dT%H:%M:%SZ"
}
dateAddTime()
{
ds=$1
echo $ds
# remove nano seconds
ds=`echo "${ds/\.[0-9][0-9][0-9]/}"`
#convert to timestamp
ts=`date -jf %Y-%m-%dT%H:%M:%SZ $ds +%s`
#time in hours
seconds=$2*60*60
dateFormatter $(($ts + $seconds))
}
#add 6 hours
dateAddTime 2022-03-28T23:40:49.721Z 6
참고: MacOS는 나노초를 좋아하지 않으므로 제거해야 합니다.