NSDateFormatter的区别
这两种date格式有什么区别。 第一个给实际时间,但第二个给予时间购买增加时区偏移值。
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setTimeZone:[NSTimeZone systemTimeZone]]; [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"]; NSDate *dateConverted = [dateFormatter dateFromString:@"2013-12-02T12:15:43.182Z"]; NSLog(@"Date: %@",dateConverted); //
date: 2013-12-02 12:15:43 +0000
NSDateFormatter * dateFormatter1 = [[NSDateFormatter alloc] init]; [dateFormatter1 setTimeZone:[NSTimeZone systemTimeZone]]; [dateFormatter1 setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.SSS'Z'"]; NSDate *dateConverted1 = [dateFormatter1 dateFromString:@"2013-12-02T12:15:43.182Z"]; NSLog(@"%@",dateConverted1);
date: 2013-12-02 06:45:43 +0000
第二种格式的问题是所有不必要的引号,特别是在Z
周围。 通过引用Z
这意味着Z
被视为文字字符而不是时区格式说明符。
摆脱Z
周围的报价,都会给出相同的结果。
第二个date格式化程序是不正确的,'Z'不应该单引号,这使它不被视为格式字符。
此外,唯一需要的单引号是'T',因此不被视为格式字符而是文字。
请参阅ICU用户指南: 格式化date和时间