4

我从过去两个小时开始就在尝试这个,最后把它留给你们了: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];

这里的日期总是为零

4

3 回答 3

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如果您不使用ARCadd autoreleaseto theNSLocale并在完成后释放,则此代码有效NSDateFormatter

于 2012-06-04T13:11:52.913 回答
0
NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
[inputFormatter setDateFormat:@"dd/mm/yyyy hh:ss"];
NSString *formatterDate = [inputFormatter stringFromDate:inDate];
[inputFormatter release];
于 2012-06-04T12:58:00.323 回答
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"];

希望,这对你有帮助....

于 2012-06-04T13:00:09.020 回答