Customing time and date formats in the GNOME top bar

Do you want another time and date format in the GNOME top bar than what is set in your default locale? The Clock Override extension for GNOME gives you full control of what and how time and data information is display in the top bar.

The GNOME Shell for Linux doesn’t provide a lot of customization options out of the box. GNOME really don’t believe that anyone would ever want to customize their beautiful desktop shell. They’ve taken their design-by-omitting-customization paradigm so far that they’ve even left out the ability to customize the date and time format. Fortunately, the GNOME Shell is quite extensible and users always do find a way to change things the way that they want them.

GNOME Shell doesn’t provide users with options for manually customizing the date and time formats used throughout the desktop. Instead, you’re limited to choosing from locale sets provided by the GNU C Library. If you want to use a locale that isn’t included by default, such as European English, you’ll need to construct and install your own locale definition.

While changing the system-wide locale requires a fair bit of time and effort, you can use the Clock Override extension for GNOME to customize the shell’s most prominently featured timepiece: the clock on the top bar.

Here is how you get started:

  1. Either open the GNOME Web browser (simply called Web; formerly Epiphany) or setup your preferred browser to install GNOME extensions.
  2. Install the Clock Override extension through your web browser.
  3. Go to Installed extensions, find Clock Override in the list, and click the Configure button next to it.

By default, the extension changes the clock to a full international date format (ISO 8601). Some may find this a bit too verbose, so I’ve provided some useful example format recipes that also highlight why programmers hate working with anything related to date and time:

Format string Example output Details
%F   %G-W%V 2010-01-02   2009-W53 ISO 8601 date and week
%R   %l:%M %p 12:01   12:01 PM 24- and 12-hour clocks
Some %A, %B %Y Some Saturday, January 2010 Sure, why not.

You can use any GLib GDateTime format specifies. You can actually include as many different clock and dates as you like; you’re not just limited to one. Any changes you make in the Configuration dialog are displayed immediately in GNOME’s top bar.

The extension also supports the following three format specifier extensions to the default GLib GDateTime format specifies:

Format string Example output Details
%H %;vf 15 ½ Slow time; nearest quarter as fraction
%;cf 🕞 An emoji clock face
@%;@. @687. Internet Time (.beat)

The slow time format and the emoji clock both encodes traditional sexagesimal clocks with reduced precision so you can focus more on your work on less on the exact time. Slow time rounds minutes to the nearest quarter while the emoji clock face only updates every half hour. (Unicode haven’t included more precise clock emojis … yet.)

The Internet Time format is a whole different way of tracking time: the day is divided up into 1000 time beats instead of 24 hours of 60 minutes each; with time moving 1 beat ever 86.4 seconds. The whole world moves to the same beat with no time zones. When its @000. at midnight 00:00 in UTC+01:00 then it’s @000. everywhere in the world at the same time. It’s great for organizing events and meetings across time zones.

Please note that you may experience a minuscule negative impact on performance and battery life on devices without a modern graphics card when using any time format with second-precision.

Clock Override for GNOME Shell is licensed under the MIT License, and the sources are available on GitHub. I’m effectively the maintainer for this GNOME extension going forward, so please report any bugs and issues on GitHub.