更改iPhone中的日期格式

时间:2012-06-04 12:53:49

标签: iphone ios nsdateformatter

自从最近两个小时以来,我正在尝试这一点,并最终将它留给了你们: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是零

3 个答案:

答案 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


如果您未使用ARCARC添加到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"];
希望,这对你有帮助....