I would highly suspect Ubuntu and Windows disagreeing on whether the hwclock is localtime or UTC. The conflict usually comes about because Linux uses the the hwclock set in UTC, while Windows uses the hwclock set to the localtime zone.
If you want your hwclock to show the time in your timezone, then you will need to change linux to not be UTC, which means make linux use localtime. If you are OK with your hwclock (BIOS) to be in UTC, then change windows to be UTC.
Make Windows use UTC
Note: This method was not initially supported on Windows Vista and Server 2008, but came back with Vista SP2, Windows 7, Server 2008 R2 and Windows 8/8.1.
To make MS Windows calculate the time from the hardware clock as UTC.
Create a file named WindowsTimeFixUTC.reg
with the following contents and then double click on it to merge the contents with the registry:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"RealTimeIsUniversal"=dword:00000001
Note: Windows Time service will still write local time to the RTC regardless of the registry setting above on shutdown, so it is handy to disable Windows Time service with this command (if time sync is still required while in Windows use any third-party time sync solution):
sc config w32time start= disabled
Reversing the change.
You can create a file with the following contents and then double-click it to merge in the original changes, as above:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"RealTimeIsUniversal"=-
If Windows Time service was disabled, enable it again with the command:
sc config w32time start= demand
Make Linux use 'Local' time
To tell your Ubuntu system that the hardware clock is set to 'local' time:
Pre-Ubuntu 15.04 systems (e.g. Ubuntu 14.04 LTS):
edit /etc/default/rcS and add or change the following section
#Set UTC=yes if your hardware clock is set to UTC (GMT)
UTC=no
Ubuntu 15.04 systems and above (e.g. Ubuntu 16.04 LTS):
open a terminal and execute the following command:
timedatectl set-local-rtc 1
Best Answer
The key is to change also the computer clock to a different timezone where daylight savings doesn't apply (Salvador, for instance), and refreshing Slack (Ctrl+R did the trick for me)
Obs1: You don't need to be the slack admin to do this, it's related to your individual machine settings.
Obs2: Even if your time is showing correctly on your machine with your timezone set to Sao Paulo, for instance, slack will show incorrect time. You must set to a location with no daylight savings information, such as Salvador. Slack apparently uses that info instead of the current machine time.