命令行工具用于查找当前时区?

命令行工具用于查找当前时区?

我已将日期和时间设置设为使用“自动时区”,这反映在timedatectl

amanda@rajje:~$ timedatectl status
                      Local time: Fri 2019-11-15 14:01:29 EST
                  Universal time: Fri 2019-11-15 19:01:29 UTC
                        RTC time: Fri 2019-11-15 19:01:29
                       Time zone: America/New_York (EST, -0500)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

但它不会自动更新。今天我打开笔记本电脑,连接到一个全新的咖啡店互联网 wifi,它肯定在加利福尼亚,America/Los_Angeles (PST, -0800)但我仍然在系统时钟上看到 EST。过去几个月我旅行了很多次,我的笔记本电脑始终没有更新时区。

我知道至少我的浏览器知道我在哪里,因为谷歌地图默认是我所在的街区。所以问题不在于我使用的互联网连接隐藏了我的位置。

我以为这样sudo systemctl restart systemd-timedated就可以了,但是却没有效果。

timedatectl set-timezone America/New_York我可以使用或快速更改时区,timedatectl set-timezone America/Los_Angeles但我想知道是否有办法使用timedatectl或其他工具来告诉 Ubuntu 找出我所在的时区。有点像“我很确定那是错的,你能再检查一下吗?”触发器或命令?

答案1

curl "http://worldtimeapi.org/api/ip"

这将返回一个 JSON 数据块,类似:

{
  "week_number": 46,
  "utc_offset": "-08:00",
  "utc_datetime": "2019-11-15T20:30:02.492900+00:00",
  "unixtime": 1573849802,
  "timezone": "America/Los_Angeles",
  "raw_offset": -28800,
  "dst_until": null,
  "dst_offset": 0,
  "dst_from": null,
  "dst": false,
  "day_of_year": 319,
  "day_of_week": 5,
  "datetime": "2019-11-15T12:30:02.492900-08:00",
  "client_ip": "******",
  "abbreviation": "PST"
}

在这里阅读关于 API 的更多信息:http://worldtimeapi.org/

相关内容