在iOS中以不同格式解析日期
问题描述:
在我的应用程序中,我从Webservices获取数据。数据以XML的形式出现,我使用解析器来解析和获取我需要的数据。在iOS中以不同格式解析日期
在其中一个结果中,我得到日期为2011年12月14日。但是我想将日期显示为2011-14-12。
这里是我使用的代码..
NSDate *endDate = [CommonHelper getDateFromString:[NSString stringWithString:elementValue] :@"dd-MMM-yyyy HH:mm:ss"];
+ (NSDate *) getDateFromString: (NSString *) dateStr: (NSString *) format
{
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:format];
NSDate *newDate = [dateFormat dateFromString:dateStr];
[dateFormat release];
return newDate;
}
会有人能够帮助我,我该怎么办呢?
答
使用这些方法来解析日期字符串,像你描述格式化日期对象:
+ (NSDate *)parseDate:(NSString *)dateString {
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"dd MMM yyyy"];
NSDate *newDate = [dateFormat dateFromString:dateString];
[dateFormat release];
return newDate;
}
+ (NSString *)formatDate:(NSDate *)date {
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-dd-MM"];
NSString *dateString = [dateFormat stringFromDate:date];
[dateFormat release];
return dateString;
}
+1
正如seppo0010所建议的那样,你应该[始终设置语言环境](http://stackoverflow.com/questions/6613110/what-is-the-best-way-to-deal-with-the-nsdateformater-locale-feature) 。 – 2012-01-03 20:39:55
使用NSDateFormatter的日期字符串转换为一个NSDate对象,然后再次使用NSDateFormatter到的NSDate对象转换成所需的格式。 – 2012-01-03 19:48:32
感谢您的答复..我曾尝试将该日期转换为NSDate ..但是,它似乎并没有正确转换,因为我得到空值... – learner2010 2012-01-03 19:55:44
如果您将日期定为“2011年12月14日”,您可能有尝试使用格式“dd MMM yyyy”。另外,我建议您设置一个语言环境,否则解析可能取决于用户本地设置。 – seppo0010 2012-01-03 20:09:33