在IOS 5.1和iOS 6 NSDateFormatter的行为(Behavior of NSDa

2019-10-17 06:34发布

任何人注意到的iOS 5.1和iOS 6.0之间存在一些差异? 在下文中,日期字符串格式回来在不同的每个版本:NSDateFormatter

*dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
dateFormatter.dateFormat = @"MM/dd/yyyy HH:mm:ss (vvvvv)";
NSDate   *lDate   = [[NSDate alloc]init];
NSString *sDate   = [dateFormatter stringFromDate:lDate];

在IOS 5.1,SDATE为 “10/01/2012 16时43分09秒(GMT-05:00)”,但在IOS 6.0,SDATE为 “10/01/2012 16时44分09秒()”

为什么这会是什么想法?

Answer 1:

替换@"MM/dd/yyyy HH:mm:ss (vvvvv)";@"MM/dd/yyyy HH:mm:ss ('GMT'Z)";

Z格式字符串输出,你还在做什么vvvvv除了GMT前缀,没有冒号为好。

如果需要结肠,你可以加入这一行,将其添加到字符串:

sDate = [NSString stringWithFormat:@"%@:%@", [sDate substringToIndex:sDate.length-3], [sDate substringWithRange:NSMakeRange(sDate.length-3, 3)]];


Answer 2:

我认为,这个解决您的问题(只能使用一个V):

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"MM/dd/yyyy HH:mm:ss (V)";
NSDate   *lDate   = [[NSDate alloc]init];
NSString *sDate   = [dateFormatter stringFromDate:lDate];


Answer 3:

我有IST而不是GMT。 我用V为iOS 5中工作正常,但在iOS 6中不工作。



文章来源: Behavior of NSDateFormatter in iOS 5.1 and iOS 6