Linux – Is the BST time zone an hour behind

linuxsystemdtimezone

My system (Gnome 3 on Debian Testing) is confused about the current time. When I run date the time is showing correctly but some applications are an hour behind the times. For instance, when I add an event to Gnome Calendar the event time shown in the calendar appointments will be the time I entered minus one hour.

I've found out what the issue is but don't know how to solve it:

$ date ; TZ=GMT date ; TZ=BST date
Sun 30 Apr 11:25:37 BST 2017
Sun 30 Apr 10:25:37 GMT 2017
Sun 30 Apr 10:25:37 BST 2017

The first two lines of the output are correct, the third is an hour behind. What I can't understand is why the BST time zone appears to be an hour behind while at the same time the current time is correct – and using BST.

This may also be relevant:

$ timedatectl status
      Local time: Sun 2017-04-30 11:33:07 BST
  Universal time: Sun 2017-04-30 10:33:07 UTC
        RTC time: Sun 2017-04-30 10:33:07
       Time zone: Europe/London (BST, +0100)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no

Edit
Output of zdump /etc/localtime:

$ zdump /etc/localtime
/etc/localtime  Sun Apr 30 12:22:53 2017 BST

$ date ; TZ=GMT date ; TZ=BST date
Sun 30 Apr 12:22:53 BST 2017
Sun 30 Apr 11:22:53 GMT 2017
Sun 30 Apr 11:22:53 BST 2017

Best Answer

Complementing Gilles answer; I am on the same time zone as the OP. Western European Time aka WET it is the official denomination; if memory does not fail me it was included for Portugal in the Unix timezones around 1996.

https://en.wikipedia.org/wiki/Western_European_Time

European Time (WET, UTC±00:00) is a time zone covering parts of western and northwestern Europe.

The following countries and regions use WET in winter months:
- Canary Islands, > since 1946 (rest of Spain is CET, UTC+1) - Faroe Islands, since 1908
- North Eastern Greenland (Danmarkshavn and surrounding area)
- Iceland, since 1968
- Portugal, since 1912 with pauses (except Azores, UTC−1)[1]
- Madeira Islands, since 1912 with pauses[2]
- Ireland, since 1916 (legally known as Greenwich Mean Time) except between 1968 and 1971
- United Kingdom and Crown dependencies, since 1847 in England, Scotland, Wales, the Channel Islands, and the Isle of Man, and since 1916 in Northern Ireland (legally known as Greenwich Mean Time), with pauses

In the United Kingdom, from 1940 to 1945 British Summer Time (BST=CET) was used in winters, and from 1941 to 1945 and again in 1947, British Double Summer Time (BDST=CEST) was used in summers. Between 18 February 1968 and 31 October 1971, BST was used all year round.

All the above countries except Iceland implement daylight saving time in summer, switching to Western European Summer Time (WEST, UTC+1), which is one hour ahead of WET. WEST is called British Summer Time in the UK and is officially known as Irish Standard Time in Ireland.

While the official denomination for the summer time is WEST (Western European Summer Time), WETis used for TZ, and takes in account summer time/DST, advancing one hour.

'Europe/London' might be nowadays a better choice, however knowing the WET shorthand is still useful in some situations.

https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

So, to compare results with your initial test:

$date ; TZ=GMT date ; TZ=WET date
Mon May  1 09:36:10 WEST 2017
Mon May  1 08:36:10 GMT 2017
Mon May  1 09:36:10 WEST 2017
Related Question