自从过去两个小时以来,我一直在尝试这个,最后把它留给了你们:P
我需要转换这个 String Mon, 14 May 2012, 12:00:55 +0200
转换为日期 dd/mm/yyyy hh:ss
格式..
对于实现目标的任何形式的帮助,我们将不胜感激。
我尝试过的
我试过使用 NSDateFormatter 但我无法弄清楚上述日期的确切格式。
这 [dateFormatter setDateFormat:@"EEEddMM,yyyy HH:mm:ss"];
是我尝试过的方式以及许多其他格式
例如:
NSString *finalDate = @"Tue, 29 May 2012, 14:24:56 +0200";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"EEEddMM,yyyy HH:mm:ss"];
NSDate *date = [dateFormatter dateFromString:finalDate];
这里的日期总是 nil
最佳答案
日期格式化最重要的部分经常被遗忘,告诉NSDateFormatter
输入语言:
NSDateFormatter *dateFormatter = [NSDateFormatter new];
[dateFormatter setDateFormat:@"EEE, dd MMMM yyyy, HH:mm:ss Z"];
dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"EN"];
NSDate *date = [dateFormatter dateFromString:@"Mon, 14 May 2012, 12:00:55 +0200"];
NSLog(@"date: %@", date);
我检查了输出:date: 2012-05-14 10:00:55 +0000
请注意日期格式器中的 HH
是 24hr
。
现在我建议不要使用固定的输出方案,而是使用 NSDateFormatterStyle
之一:
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
NSString *dateString = [dateFormatter stringFromDate:date];
NSLog(@"date: %@", dateString);
美式英语将输出:5/14/12 12:00 PM
如果您不使用 ARC
,此代码对 ARC
有效,将 autorelease
添加到 NSLocale
并发布完成后 NSDateFormatter
。
关于iphone - 更改 iPhone 中的日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10881663/