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

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

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

시간을 앞으로/뒤로 x초/분/시간 이동하는 명령은 무엇입니까? (또한 일/월/년도 가능합니까?)

답변1

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

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

NTP와 같은 시간 관리 시스템을 실행하는 경우 이와 같이 시계를 변경하면 혼란스러울 수 있습니다. 먼저 중지하십시오.

실행하면 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" 옵션이 있었는데, 이를 통해 수퍼유저는 시계를 몇 초 앞이나 뒤로 조정할 수 있었습니다.

관련 정보