--- ext/date/date_core.c.orig 2012-03-30 14:15:10.000000000 +0900 +++ ext/date/date_core.c 2013-02-18 01:33:31.000000000 +0900 @@ -7864,7 +7864,7 @@ of = tm.tm_gmtoff; #elif defined(HAVE_VAR_TIMEZONE) #ifdef HAVE_VAR_ALTZONE - of = (long)((tm.tm_isdst > 0) ? altzone : timezone); + of = (long)-((tm.tm_isdst > 0) ? altzone : timezone); #else of = (long)-timezone; if (tm.tm_isdst) {