다음 형식으로 날짜를 출력하는 프로그램이 있습니다.
Thu Mar 5 09:15:27 2015
이는 Linux의 출력과 매우 유사 date
하지만 이 형식에는 시간대가 포함되지 않습니다. string Thu Mar 5 09:15:27 2015
as date1
및 string Thu Mar 5 09:30:58 2015
as date2
in 을 캡처할 수 있다고 가정하면 bash
, 계산을 수행하기 위해 자체 bash/python/etc. 스크립트를 작성하지 않고 이 두 날짜 사이의 초 수를 어떻게 얻을 수 있습니까?
답변1
"계산 없음"이 무슨 뜻인지 잘 모르겠습니다. 아래에서 계산해 보세요...
date1="Thu Mar 5 09:15:27 2015"
date2="Thu Mar 5 09:30:58 2015"
printf "%s\n" $(( $(date -d "$date2" "+%s") - $(date -d "$date1" "+%s") ))
답변2
시간대 정보가 없으면 항상 정확한 답변을 드릴 수 없습니다.
#!/bin/bash
export TZ
for TZ in America/New_York Europe/Prague ; do
d1=$(date -d 'Mar 8 01:59:59 2015' +%s)
d2=$(date -d 'Mar 8 03:00:01 2015' +%s)
echo "$TZ: $((d2-d1))"
done
답변3
일부 다른 셸에는 내장 기능이 있습니다.
다루기 힘든
zmodload zsh/datetime
date1='Thu Mar 5 09:15:27 2015'
date2='Thu Mar 5 09:30:58 2015'
for v (date{1,2}) strftime -rs $v '%a %b %d %T %Y' ${(P)v}
echo $((date2 - date1))
바라보다info zsh strftime
그리고info zsh flags
자세한 내용은 P
매개변수 확장 플래그를 참조하세요.
크쉬 93
date1='Thu Mar 5 09:15:27 2015'
date2='Thu Mar 5 09:30:58 2015'
echo "$(($(printf '%(%s)T - %(%s)T' "$date2" "$date1")))"
자세한 내용은 man <(printf --nroff 2>&1)
ksh 내에서 참조하세요.
(두 경우 모두 날짜는 현지 시간대로 간주됩니다.)