
以前のバージョンの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