这两种日期格式的区别是什么?第一个给出实际时间,第二个给出时间,购买增加时区偏移值。
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); // 日期: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);日期:2013-12-02 06:45:43 +0000
发布于 2013-12-02 16:16:37
第二种格式的问题是所有不必要的引号,特别是围绕Z。通过引用Z,这意味着Z被视为一个文字字符,而不是时区格式说明符。
去掉Z周围的引号,两者都会得到相同的结果。
发布于 2013-12-02 16:18:07
第二个日期格式化程序是不正确的,'Z‘不应该是单引号,这使它不被认为是一个格式字符。
此外,唯一需要的单引号是围绕'T‘,所以这不是一个格式字符,而是一个文字。
参见ICU用户指南:格式化日期和时间
https://stackoverflow.com/questions/20332667
复制相似问题