Linux – Incorrect automatic time zone

arch linuxgnometimezone

I've noticed that the automatic time zone detection functionality of my GNOME 3 (Arch Linux) is not working correctly. My actual time zone is PST (UTC-08), but if I toggle on the "Automatic Time Zone" option in "All Settings -> Date & Time", it would detect me to be in EST (UTC-05).

Kernel: 4.9.11-1-ARCH

GNOME: 3.22.3-1

Output of timedatectl:

      Local time: Wed 2017-03-01 05:36:18 EST
  Universal time: Wed 2017-03-01 10:36:18 UTC
        RTC time: Wed 2017-03-01 10:36:18
       Time zone: America/New_York (EST, -0500)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no

Output of sudo hwclock --show: 2017-03-01 05:37:38.295861-0500 (Which is the current EST time)

Output of date: Wed Mar 1 05:39:07 EST 2017

I suspected it was something wrong about my IP address, but all online IP location finder websites I've tried tell me I'm in San Francisco (which is correct). Also, I'm running dual systems (Windows 10 & Arch), and one OS writing the hardware clock always results in the other OS having an incorrect time on the next boot; I just ignore it and let the OSes' internet time services correct it. Wrong time zone detection only began today.

I'm not sure how to approach this issue. Can anyone shed some light on what might be the cause?

Best Answer

Hello,

probably a bit late, but have you tried to setting ntp?

Although; use with caution, it may be some security concerns involving ntp, I'm just providing this. in hope it will be useful.

timedatectl set-ntp true

Network Time Protocol Security concerns -en.wikipedia.org

You could also try:

gsettings set org.gnome.desktop.datetime automatic-timezone true

Note: If something downright wrong with any of my posts is spotted; Please point that out right away! //thanks! Appreciate it!

I've had this problem quite a lot for the time being, and I have solved it (probably isn't the most optimal way) by:

timedatectl set-time <the actual **correct time**>

timedatectl set-timezone <Your timezone>

and, then - after that you try:

timedatectl set-ntp true

Hope this helps someone in the future.

Related Question