I also reproduce the issue with Jenkins 1.440.
In /systeminfo, I have user.timezone = Europe/Paris (UTC+1).
In the build history, there is a build at "14:36:22" (in June) but in the timeline, the same build is displayed at "13:36:22" as shown in the tooltip (BAD).
And also, in the build history, there is another build at "15:21:25" (in January) and in the timeline, the same build is displayed at "15:21:25" as shown in the tooltip (GOOD).
So it seems to be an issue of daylight saving time, and in the same timeline some builds are bad and others are good.
In , I see that java.util.TimeZone.getDefault().getRawOffset() is used.
Perhaps, java.util.TimeZone.getDefault().getOffset(date.getTime()) should be used instead for each date, or the timezone of the dates could be changed on the server before sending the JSON of the timeline data to the client.