2012-11-24 141 views
1

我有一個像「20121124T103000」的字符串,我想將其轉換爲NSDateiPhone:如何將「yyyyMMddThhmmss」格式的字符串轉換爲NSDate?

我試着用dateFormatter日期格式「yyyyMMddThhmmss」轉換它,但它給出的輸出爲2001-01-01 00:00:00 +0000這是不正確的。

我們可以將此字符串轉換爲NSDate的方式是什麼?

這裏是我的代碼:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"yyyyMMddThhmmss"]; 
NSLog(@"%@",[dateFormat dateFromString:@"20121124T103000"]); 

任何幫助表示讚賞。

+0

可能重複http://stackoverflow.com/questions/6892587/proper-way-to-convert- nsstring-to-nsdate-on-ios) –

回答

1

做到這樣,

NSString *dateStr = @"20121124T103000"; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"yyyyMMdd'T'hhmmss"]; 
NSDate *d = [dateFormat dateFromString:dateStr]; 
NSString *st = [dateFormat stringFromDate:d]; 
NSLog(@"%@",st); 
的[有道的NSString轉換成NSDate的iOS上?(
+0

也可以考慮按照[Apple技術問答1480](https://developer.apple.com/library/ios/qa/qa1480/_index.html)中的建議設置'locale'和'timeZone'。 – Rob

1

請嘗試以下代碼。

NSString *dateStr = @"20121124T103000"; 
    NSDateFormatter *dtF = [[NSDateFormatter alloc] init]; 
    [dtF setDateFormat:@"yyyyMMdd'T'hhmmss"]; 
    NSDate *d = [dtF dateFromString:dateStr]; 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    [dateFormat setDateFormat:@"yyyyMMdd'T'hhmmss"]; 
    NSString *st = [dateFormat stringFromDate:d]; 
NSLog(@"%@",st]); 
+0

這是不正確的。查看其他答案。 – rmaddy

4

您的原始代碼非常接近;而不是:

@"yyyyMMddThhmmss" 

您應該使用:

@"yyyyMMdd'T'hhmmss" 

唯一的區別是一對在與字符串周圍的「T」單引號的,你只需要讓應用程序知道' T'是格式的一部分,而不是實際的日期。

相關問題