Unicode日期格式模式指南(here)指出,將格式附加'a'會得到期間(例如AM或PM),例如確保上午/下午(期間)不出現在NSDateFormat stringFromDate
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss a"];
但是,我希望確保週期信息不會出現,但我找不到格式字符串來做到這一點。我使用的格式字符串如下:
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
不幸的是,當我使用stringFromDate我得到如下:
2013-01-09T11:11:00
我不希望簡單地從結果字符串中去除AM或PM,因爲在不同的日曆等期間句號可能不同,我只想停止出現的週期信息。
---- 8 < ------
考慮下面的代碼
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setLocale:[NSLocale currentLocale]];
[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
NSString *stringDate = [formatter stringFromDate:[NSDate date]];
self.labelOutput.text = stringDate;
[formatter release];
該代碼會產生在我想要的格式字符串 - 但我不能用它來記憶管理的原因。我正在處理的應用程序受到NSDateFormatter內存泄漏的困擾。因此,我們使用單例類爲應用程序提供一組數字NSDateFormatters,這些程序永遠不會被釋放,因此我們可以最大限度地減少泄漏的內存量。遺憾的是這些靜態NSDateFormatters被追加AM/PM,甚至當我這樣申請日期格式字符串:用戶的設置
NSDateFormatter *formatter = [MyDateFormatter dateFormat:kFormatDateMediumStyleTimeShortStyle];
[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
奇,你介意張貼整個方法,其中這種情況正在發生或更相關的片斷,如果方法體過大? –
它值得展示MyDateFormatter子類。 iE是否錯誤地覆蓋了'setDateFormat:'和類似的方法? – vikingosegundo