시간 변수의 타임스탬프를 얻는 방법은 무엇입니까?

시간 변수의 타임스탬프를 얻는 방법은 무엇입니까?

내 운영체제에서

date
Tue 01 Nov 2022 06:58:10 PM HKT

유닉스 타임스탬프 얻기

date +%s
1667300297

UTC 시간을 가져옵니다.

date -u
Tue 01 Nov 2022 10:58:08 AM UTC

변수를 UTC 시간으로 지정하면

x=$(date -u)

그렇다면 변수의 타임스탬프를 얻는 방법은 무엇입니까?

$x  +%s
bash: Tue: command not found

답변1

현재 시간을 에포크 이후의 초 수로 지정하려면 다음을 수행하세요.

x=$(date +%s)

zsh이후 zmodload zsh/datetime버전이나 최신 버전을 사용하면 bash이 작업도 수행할 수 있습니다 x=$EPOCHSECONDS.

x=$(date -u)사용자의 로케일과 시스템 간 차이에 따라 Tue 01 Nov 2022 10:58:08 AM UTC또는 같은 mar. 01 nov. 2022 12:05:48 UTC것을 저장합니다 .2022年 11月 01日 星期二 12:06:04 UTC$x

해당 날짜에 해당하는 에포크 초를 얻는 것은 어렵습니다.

예를 들어 Tue 01 Nov 2022 10:58:08 AM UTC, GNU 구현에 액세스할 수 있다면 date운이 좋을 것입니다. 이는 옵션을 통해 인식되는 날짜 형식 중 하나이기 때문입니다 -d.

그래서:

epoch=$(date -d "$x" +%s)

거기에서 일할 것입니다. 귀하의 date명령은 GNU 명령이 아닌 것 같지만 GNU는 다음 과 같이 date사용할 수 있습니다 .gdate/opt/gnu/bin/date

관련 정보