CLI에서 자신의 시간대와 다른 시계를 얻으려면 어떻게 해야 합니까?

CLI에서 자신의 시간대와 다른 시계를 얻으려면 어떻게 해야 합니까?

CLI에서 다른 시계나 시간에 대해 호출하거나 알아볼 수 있는 방법이 있습니까? 문제는 UTC+5:30 시간을 사용하지만 때로는 다른 시간대의 시간을 알아야 한다는 것입니다. 이를 이해하는 CLI 방법이 있다면 도움이 될 것입니다.

답변1

man date나는 당신이 이미 대답을 가지고 있다고 생각합니다 .

 ENVIRONMENT

 The following environment variables affect the execution of date:

 TZ      The timezone to use when displaying dates.  The normal format is a pathname
         relative to /usr/share/zoneinfo.  For example, the command
         ``TZ=America/Los_Angeles date'' displays the current time in California.  See
         environ(7) for more information.

/usr/share/zoneinfo시간대 이름.

답변2

date변수를 변경하여 사용할 시간대를 변경할 수 있습니다.TZ

예를 들어

$ date
Sun Oct 11 01:42:44 CEST 2015
$ TZ=US/Pacific date                                
Sat Oct 10 16:43:14 PDT 2015
$ TZ=UTC date                                                      
Sat Oct 10 23:44:04 UTC 2015

답변3

다른 사람들이 언급했듯이 TZ환경 변수는 영향을 받습니다 date. 그러나 대부분의 경우에는 원하지 않습니다.떠나다 TZ변경하세요. 환경에 영향을 주지 않고 해당 시간대의 시간을 확인하고 싶을 뿐입니다.

이를 위해 사용하는 가장 좋은 도구는 맨 페이지 env에서 다음과 같습니다.env

NAME
    env - run a program in a modified environment
SYNOPSIS
    env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...]

따라서 이 경우 원하는 명령은 다음과 같습니다.

env TZ='EST' date

시간대에 대해 허용되는 다른 형식도 많이 있습니다. 특별한 요구 사항이 있는 경우 man timezone유효한 시간대 형식을 설명하는 내용을 읽어 보는 것이 좋습니다 .

답변4

나는 몇 개의 TZ만 자주 확인하면 된다고 가정합니다. 이러한 가정을 염두에 두고 확인해야 하는 각 TZ에 대한 별칭이나 기능을 설정하는 것이 유용할 수 있습니다. 별칭은 간단합니다..

alias est="TZ=US/Eastern date"

함수 정의는 다음과 같습니다.

est() { TZ=US/Eastern date ; }

각 TZ에 대한 기능을 정의하면 TZ에 대한 변경 사항을 격리할 수 있다는 추가 이점이 있습니다. 즉, TZ에 할당된 값은 함수가 끝나면 사라지고, 쉘로 돌아오면 원래 값으로 돌아갑니다.

로그인할 때마다 이들 중 하나를 사용하려면 ~/.bash_profile에 포함해야 합니다. 이 중 하나를 수행한 후에는 새 셸을 열거나 로그아웃/로그인하고 를 사용하여 날짜/시간을 가져옵니다 est.

관련 정보