2011-09-26 81 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