2 Copyright (C) 2000-2003 SKYRIX Software AG
4 This file is part of OGo
6 OGo is free software; you can redistribute it and/or modify it under
7 the terms of the GNU Lesser General Public License as published by the
8 Free Software Foundation; either version 2, or (at your option) any
11 OGo is distributed in the hope that it will be useful, but WITHOUT ANY
12 WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 License for more details.
16 You should have received a copy of the GNU Lesser General Public
17 License along with OGo; see the file COPYING. If not, write to the
18 Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
23 #include "NSCalendarDate+ICal.h"
26 static NSTimeZone *gmt = nil;
27 static inline void _setupGMT(void) {
29 gmt = [[NSTimeZone timeZoneWithAbbreviation:@"GMT"] retain];
32 @implementation NSCalendarDate(ICalValue)
36 static NSString *gmtcalfmt = @"%Y%m%dT%H%M00Z";
38 - (NSString *)icalStringInGMT {
43 /* set GMT as timezone */
44 oldtz = [[self timeZone] retain];
50 [self setTimeZone:gmt];
54 s = [self descriptionWithCalendarFormat:gmtcalfmt];
56 /* restore old timezone */
58 [self setTimeZone:oldtz];
65 - (NSString *)icalStringWithTimeZone:(NSTimeZone *)_tz {
68 if (_tz == gmt || _tz == nil)
69 return [self icalStringInGMT];
70 else if ([_tz isEqual:gmt])
71 return [self icalStringInGMT];
74 NSLog(@"WARNING(%s): arbitary timezones not supported yet: %@",
75 __PRETTY_FUNCTION__, _tz);
76 return [self icalStringInGMT];
80 - (NSString *)icalString {
82 return [self icalStringWithTimeZone:gmt];
85 @end /* NSDate(ICalValue) */