自从最近两个小时以来,我正在尝试这一点,并最终将它留给了你们:P
我需要转换此字符串 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];
这里的日期alwasys是零
答案 0 :(得分:4)
日期格式中最重要的部分经常被遗忘,请告诉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
,则此代码对{{1}}有效
答案 1 :(得分:0)
NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
[inputFormatter setDateFormat:@"dd/mm/yyyy hh:ss"];
NSString *formatterDate = [inputFormatter stringFromDate:inDate];
[inputFormatter release];
答案 2 :(得分:0)
获取有关所有日期格式的信息 我的博客链接是http://parasjoshi3.blogspot.in/2012/01/date-formate-info-for-iphone-sdk.html
并且小功能如下.....
-(NSString *) dateInFormat:(NSString*) stringFormat {
char buffer[80];
const char *format = [stringFormat UTF8String];
time_t rawtime;
struct tm * timeinfo;
time(&rawtime);
timeinfo = localtime(&rawtime);
strftime(buffer, 80, format, timeinfo);
return [NSString stringWithCString:buffer encoding:NSUTF8StringEncoding];
}
////////喜欢.......
NSString *mydate = [self dateInFormat:@"%Y%m%d-%H%M%S"];
希望,这对你有帮助....