Skip to content

Commit

Permalink
Fix issue ninenines#157 relating to daylight savings time.
Browse files Browse the repository at this point in the history
  • Loading branch information
Magnus Klaar committed Mar 9, 2012
1 parent c6c2b31 commit 3376b72
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion src/cowboy_clock.erl
Expand Up @@ -64,7 +64,20 @@ rfc2109(LocalTime) ->
{{YYYY,MM,DD},{Hour,Min,Sec}} =
case calendar:local_time_to_universal_time_dst(LocalTime) of
[Gmt] -> Gmt;
[_,Gmt] -> Gmt
[_,Gmt] -> Gmt;
[] ->
%% The localtime generated by cowboy_cookies may fall within
%% the hour that is skipped by daylight savings time. If this
%% is such a localtime, increment the localtime with one hour
%% and try again, if this succeeds, subtracting the max_age
%% from the resulting universaltime and converting to a local
%% time will yield the original localtime.
{Date, {Hour1, Min1, Sec1}} = LocalTime,
LocalTime2 = {Date, {Hour1 + 1, Min1, Sec1}},
case calendar:local_time_to_universal_time_dst(LocalTime2) of
[Gmt] -> Gmt;
[_,Gmt] -> Gmt
end
end,
Wday = calendar:day_of_the_week({YYYY,MM,DD}),
DayBin = pad_int(DD),
Expand Down

0 comments on commit 3376b72

Please sign in to comment.