CentOS 7で現在のタイムゾーンを取得しますか?

CentOS 7で現在のタイムゾーンを取得しますか?

以前のバージョンのCentOSでは、次のコマンドを使用してbashスクリプトから現在のタイムゾーンを取得しました。

timezone=$(sed 's/ZONE=//g' /etc/sysconfig/clock)

出力は次のとおりです "America/New_York"

CentOS 7で正確な出力を取得するには?

答え1

CentOS 7固有:

timedatectl | gawk -F': ' ' $1 ~ /Timezone/ {print $2}'

タイムゾーンのみを表示します。

timedatectl | gawk -F'[: ]+' ' $2 ~ /Timezone/ {print $3}'

より一般的なもの:

date +%Z

答え2

使用することが気に入らない場合は、perl次のものを使用できます。日時::タイムゾーンCPANのモジュール:

$ perl -MDateTime::TimeZone -E '
  say DateTime::TimeZone->new(name => "local")->name();
'
Asia/Ho_Chi_Minh

POSIXly、あなたは利用可能です日付フォーマット%Z:

$ date +%Z
ICT

答え3

timedatectl | awk '/Time zone:/ {print $3}'

答え4

タイムゾーンの場合は位置情報を使用できます。

$ curl https://ipapi.co/timezone
America/Chicago

または:

$ curl http://ip-api.com/line?fields=timezone
America/Chicago

http://wiki.archlinux.org/index.php/time#Time_zone

関連情報