2011-09-26 85 views

回答

4

您應該爲此使用NSDateFormatter

Data Formatting Guide(該Date & Time Programming Guide也很有趣)

這還詳細地this Technical Note蘋果Q值&爲。 請注意,對於這種情況,您應該使用本技術說明中所述的特殊「en_US_POSIX」區域

NSDateFormatter* df = [[NSDateFormatter alloc] init]; 
[df setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]]; 
[df setDateFormat:@"yyyyMMdd'T'HHmmss"]; 
NSDate* parsedDate = [df dateFromString:...]; 
+0

還有一個疑問,我一直在給定的時區作爲「美東」。我如何使用日期格式化程序來設置它。我可以給與「[NSTimeZone timeZoneWithName:@」US-Eastern「]」 –

+0

感謝鏈接到TN。順便說一句,在setLocale中,將'='更改爲':'。 – zaph

+0

我得到了我的評論的答案。它是[NSTimeZone timeZoneWithName:@「US/Eastern」];謝謝你們。 :) –

0
NSString *dateString = @"20110912T220000"; 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
NSLocale *locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]; 
formatter.locale = locale; 
formatter.dateFormat = @"yyyyMMdd'T'HHmmss"; 
NSDate *date = [formatter dateFromString:dateString]; 
NSLog(@"date: %@", date); 

的NSLog()輸出:date: 2011-09-13 02:00:00 +0000

注意,輸出的NSLog在你的本地時區中的數據。
請注意日期格式中'T'的單引號。

下面是UTS的鏈接:date/time format characters

+0

Err你的'formatter = @「...」'有問題:你可能在這裏忘了'dateFormat'屬性;) – AliSoftware

+0

@AliSoftware:迴歸,謝謝。 – zaph