我正是如此初始化我NSDateFormatter:轉換的NSDate到的NSString不格林尼治標準時間修改
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]];
[dateFormatter setDateFormat:@"EEE, d MMM yyyy HH:mm:ss z"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
NSDate *date = [NSDate date];
NSString *dateString = [dateFormatter stringFromDate:date];
dateString
現在是:
Thu, 29 Jul 2010 14:58:42 GMT+00:00
我想擺脫的「+ 00:00「
我從http://unicode.org/reports/tr35/tr35-6.html#Time_Zone_Fallback猜測我可能有本地化問題。我正在通過手動刪除「+00:00」來解決此問題,但這並不理想。
編輯
我嘗試了一些新的方法來創建NSTimeZone,但他們都產生相同的dateString
:
[NSTimeZone timeZoneWithName:@"GMT"];
[NSTimeZone timeZoneWithName:@"UTC"];
[NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[NSTimeZone timeZoneWithAbbreviation:@"UTC"];
對於有趣的問題+1。我無法弄清楚自己。順便說一句,你可能想知道使用'z'說明符可能的內存泄漏:http://thegothicparty.com/dev/article/nsdateformatter-memory-leak/ – 2010-09-14 19:48:27
+1使用「因此」 – 2012-08-31 20:27:59