我正在爲iPhone開發一個應用程序,我需要將XML Feed中的日期轉換爲HH:MM格式。NSDateFormatter和日期轉換不起作用
我有以下方法不起作用,我不知道我做錯了什麼。
作爲一個例子,timeToConvert字符串是:「星期一,2010年2月1日21時55分00秒+0100」(不帶引號)
當區域設置爲美國(該方法的工作原理我找回正確的日期),但不是當我將該區域(在設置 - >常規 - >國際)中更改爲西班牙或其他地區時(在這種情況下,我將返回零)。
- (id)timeConvertToHHMM:(NSString *)timeToConvert {
NSString *newPubDate = timeToConvert;
//Let's remove any rubbish from the code
newPubDate = [newPubDate stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
//create formatter and format to convert the XML string to an NSDate
NSDateFormatter *originalDateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[originalDateFormatter setDateFormat:@"EEE, d MMM yyyy H:mm:ss z"];
//run the string through the formatter
NSDate *formattedDate = [[NSDate alloc] init];
formattedDate = [originalDateFormatter dateFromString:newPubDate];
//Let's now create another formatter to take the NSDate and convert format it to Hours and minutes
NSDateFormatter *newDateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[newDateFormatter setDateFormat:@"HH:mm"]; // 24H clock set
// And let's convert it back to a readable string
NSString *calcHHMM = [newDateFormatter stringFromDate:formattedDate];
NSLog(@"CalcHHMM: %@", calcHHMM);
return calcHHMM;
}
爲什麼這是不工作,只是返回NULL會更受歡迎任何暗示。
您是否收到錯誤或是錯誤時間? – DyingCactus 2010-02-01 22:39:21
只返回NULL ...看起來像所有的作品,直到 formattedDate = [originalDateFormatter dateFromString:newPubDate]; – 2010-02-01 22:49:12
該代碼適用於我,但它返回轉換爲本地時區的時間。當你將它傳遞給示例字符串時,formattedDate的值是多少? – DyingCactus 2010-02-01 22:52:56