Fix bug 427006 - Timezone offset incorrectly calculated for negative half hour timezones. r=dbo

git-svn-id: svn://10.0.0.236/trunk@251260 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
mozilla%kewis.ch
2008-05-06 15:46:48 +00:00
parent 200d2e4272
commit e95bf9114e
2 changed files with 16 additions and 5 deletions

View File

@@ -285,6 +285,9 @@ calGoogleCalendar.prototype = {
request.operationListener = aListener;
request.calendar = this;
var ctz = gdataTimezoneProvider.getShortTimezone(calendarDefaultTimezone());
request.addQueryParameter("ctz", ctz);
this.session.asyncItemRequest(request);
return request;
} catch (e) {
@@ -372,6 +375,9 @@ calGoogleCalendar.prototype = {
request.oldItem = aOldItem;
request.calendar = this;
var ctz = gdataTimezoneProvider.getShortTimezone(calendarDefaultTimezone());
request.addQueryParameter("ctz", ctz);
this.session.asyncItemRequest(request);
return request;
} catch (e) {
@@ -471,6 +477,8 @@ calGoogleCalendar.prototype = {
request.calendar = this;
// Request Parameters
var ctz = gdataTimezoneProvider.getShortTimezone(calendarDefaultTimezone());
request.addQueryParameter("ctz", ctz);
request.addQueryParameter("max-results", kMANY_EVENTS);
request.addQueryParameter("singleevents", "false");
@@ -545,6 +553,8 @@ calGoogleCalendar.prototype = {
request.itemFilter = aItemFilter;
// Request Parameters
var ctz = gdataTimezoneProvider.getShortTimezone(calendarDefaultTimezone());
request.addQueryParameter("ctz", ctz);
request.addQueryParameter("max-results",
aCount ? aCount : kMANY_EVENTS);
request.addQueryParameter("singleevents", "false");

View File

@@ -352,9 +352,10 @@ function toRFC3339(aDateTime) {
return "";
}
var tzoffset_hr = Math.floor(aDateTime.timezoneOffset / 3600);
var full_tzoffset = aDateTime.timezoneOffset;
var tzoffset_hr = Math.floor(Math.abs(full_tzoffset) / 3600);
var tzoffset_mn = ((aDateTime.timezoneOffset / 3600).toFixed(2) -
var tzoffset_mn = ((Math.abs(full_tzoffset) / 3600).toFixed(2) -
tzoffset_hr) * 60;
var str = aDateTime.year + "-" +
@@ -368,9 +369,9 @@ function toRFC3339(aDateTime) {
("00" + aDateTime.minute).substr(-2) + ":" +
("00" + aDateTime.second).substr(-2);
if (aDateTime.timezoneOffset != 0) {
str += (tzoffset_hr < 0 ? "-" : "+") +
("00" + Math.abs(tzoffset_hr)).substr(-2) + ":" +
("00" + Math.abs(tzoffset_mn)).substr(-2);
str += (full_tzoffset < 0 ? "-" : "+") +
("00" + tzoffset_hr).substr(-2) + ":" +
("00" + tzoffset_mn).substr(-2);
} else if (aDateTime.timezone.isFloating) {
// RFC3339 Section 4.3 Unknown Local Offset Convention
str += "-00:00";