18

Listing the available timezones shows 'UTC'

$ timedatectl list-timezones
UTC

Setting it to UTC fails claiming UTC is "invalid".

$ timedatectl set-timezone UTC
Failed to set time zone: Invalid time zone 'UTC'

This is on Ubuntu 19.10 (Google Cloud)

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:  Ubuntu 19.10
Release:  19.10
Codename: eoan

Why is this failing?

tcurdt
  • 363
  • 3
  • 9

2 Answers2

24

Etc/UTC

You are missing Area code defined in the official tz database.

The time zone format is Area/Location. For most zones, the Area is a continent and the Location is a major city. For example, America/Montreal, Africa/Tunis, Asia/Tokyo, and Pacific/Auckland. Peruse this list.

Administrative zones have a special area: Etc. Therefore, the correct name for Coordinated Universal Time is Etc/UTC.

Esa Jokinen
  • 43,252
  • 2
  • 75
  • 122
  • 5
    When running `timedatectl list-timezones`, all of the other time zones are in the format Area/Location. The output of ` timedatectl list-timezones | grep UTC` is just "UTC". Who thought it was a good idea to do that instead of making the output `Etc/UTC`? – RonJohn Nov 09 '19 at 15:11
  • 2
    @RonJohn In 2014, Lennart [added this code](https://github.com/systemd/systemd/commit/7568345034f2890af745747783c5abfbf6eccf0f#diff-4bd8a24c1e0ebf379eaeed06d60a7083R838), which explicitly lists "UTC". – Roland Illig Nov 09 '19 at 22:38
  • 4
    @RolandIllig why am I utterly and completely, 100% **not** surprised??? – RonJohn Nov 09 '19 at 22:59
  • 1
    What I am surprised about is that even after 5 years, there is no bug report about this topic. I also cannot find any unit tests for this code in the commit. – Roland Illig Nov 09 '19 at 23:20
  • 1
    @RonJohn: My system (tzdata 2019c-2) has `/usr/share/zoneinfo/UTC` with no area prefix, and I see glibc's own source tree containing tests with `setenv ("TZ", "UTC", 1)` implying that it is a valid value... so the question isn't why timedatectl lists the name, but rather why it _rejects_ the name. – user1686 Nov 10 '19 at 22:35
  • @grawity why? Lennart Poettering, that's why? (He must have an amazing collection of serious blackmail material to have been able to propagate as much crap has he's made, with zero pushback from RH.) – RonJohn Nov 11 '19 at 00:07
  • Does not look like that's the problem: `$ timedatectl set-timezone Etc/UTC` gives `Failed to set time zone: Invalid time zone 'Etc/UTC'` – tcurdt Nov 11 '19 at 12:39
1

Appears to be a bug in your distro, they should package /usr/share/zoneinfo/UTC unconditionally, even if no other timezone data is installed. Please report this to your distribution.

user175104
  • 181
  • 1
  • 2