获取 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

相关内容