시스템 시계 시간을 앞으로/뒤로 이동하는 방법은 무엇입니까? [복사]

시스템 시계 시간을 앞으로/뒤로 이동하는 방법은 무엇입니까? [복사]

특정 시간 및/또는 날짜를 설정하는 명령을 알고 있지만 현재 시간을 기준으로 시간을 이동하는 명령을 찾을 수 없습니다.

시간을 x초/분/시간 단위로 앞으로/뒤로 이동하는 명령은 무엇입니까? (몇 일/개월/년 정도일까요?)

답변1

시스템 시간을 설정하는 명령은 다음과 같습니다.date. 시스템 시간을 설정하려면 루트 권한이 필요합니다. date현재 시간에 대한 상대적인 양이 아닌 주어진 시간으로 시간을 설정하십시오. 후자의 동작은 의미가 없기 때문입니다. 예를 들어 (내장되지 않은 Linux의 경우) 의 출력을 계산 date하고 다시 피드백하여 현재 시간을 상대적인 양만큼 수정하는 명령을 작성할 수 있습니다.date

date $(date +%m%d%H%M%Y.%S -d '1 hour ago')

NTP와 같은 타이밍 시스템을 실행하는 경우 시계를 이와 같이 변경하면 문제가 발생할 수 있습니다. 먼저 멈춰라.

Run은 date하드웨어 시계가 아닌 시스템 시간을 설정합니다. Linux에서는 다음을 실행합니다.hwclock --systohc시스템 시간을 하드웨어 시계에 복사합니다. 이는 완전 종료 시 자동으로 수행됩니다.

다른 시간대의 시간을 보고 싶다면 모든 것을 잊어버리고 원하는 시간대를 설정하세요. Linux에서는 다음을 실행합니다.tzselect시스템 시간대를 설정합니다. 다른 시간대에서 프로그램을 실행하려면 TZ환경 변수를 설정하십시오.

export TZ=Asia/Tokyo
emacs

프로그램을 실행하고 시간이 실제 시간과 다르다고 믿게 만들고 싶다면 해당 프로그램에서 실행하세요.faketime.

faketime '1 hour ago' date

답변2

다음 형식을 사용하여 현재 시간 이전의 시간을 가져올 수도 있습니다.

$ date --date='1 month'
Sun Sep 17 15:01:11 CST 2017
$ date --date='1 month'
Sun Sep 17 15:01:15 CST 2017
$ date --date='1 month 2 hours'
Sun Sep 17 17:01:23 CST 2017
$ date --date='1 month 2 hours 3 minutes'
Sun Sep 17 17:04:30 CST 2017

ago현재 날짜 이전의 시간을 사용할 수도 있습니다 .

$ date
Fri Aug 18 16:14:41 CST 2017
$ date --date='1 month 2 days ago'
Sat Sep 16 16:14:43 CST 2017

--set이 옵션을 사용할 수 있습니다환경단, +실제 날짜에 추가할 시간, 분 등의 숫자 앞에 기호를 추가합니다.

$ date
Thu Aug 17 15:07:00 CST 2017
$ date --set='+1 day +1 hour'
Fri Aug 18 16:07:24 CST 2017
$ date
Fri Aug 18 16:07:31 CST 2017
$ date --set='+1 month 3 days +1 hour'
Thu Sep 21 17:07:42 CST 2017

이것이 도움이 되기를 바랍니다.

답변3

date -Ins -s $(date -Ins -d '-1 hour')

답변4

내가 정확하게 기억한다면 UNIX SVR4에서는 "date" 명령에 "-a" 옵션이 있어서 수퍼유저가 시계를 몇 초 앞이나 뒤로 조정할 수 있었습니다.

관련 정보