如何进行日期转换?

时间:2012-04-11 09:56:13

标签: iphone nsdateformatter

我在字符串格式广告“2012-04-11T07:51:10 + 0000”中获取日期&我想将它转换为NSDate为“11-04-2012”。我不明白如何使用“setDateFormat”。

这就是我在做的事 - [dateFormatter setDateFormat:@“yyyy” - 'MM' - 'dd'T'HH':'mm':'ss'+'zzzz“];

请帮忙。

无论NSDate我会得到什么,我再次想转换为字符串ie。只有11-04-2012。 我在ggl上搜索过。但没有令人满意的结果:(

请帮忙。

2 个答案:

答案 0 :(得分:0)

以下是解析字符串以生成日期的方法:

NSString *dateString = @"2012-04-11T07:51:10+0000";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyy-MM-dd'T'HH:mm:ssZ";
NSDate *date = [formatter dateFromString:dateString];
NSLog(@"Date: %@", date);

现在您可以按如下方式生成日期的新字符串表示形式:

formatter.dateFormat = @"dd-MM-yyyy";
NSString *newDateString = [formatter stringFromDate:date];
NSLog(@"New string: %@", newDateString);
// 11-04-2012

您使用的dateFormat的问题是您不必转义所有符号,例如'MM',并且zzzz不是解析时区的正确符号类型为+0000

有关详细信息,请查看此documentation

答案 1 :(得分:0)

试试这段代码。

NSString *dateStr = @"Wed, 22 Jun 2011 12:36:00 +0100"; // change value base on your requirement.

    // Convert string to date object
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"EEE, d MMM yyyy HH:mm:ss ZZZ"]; // Change format base on dareStr.
    NSDate *date = [dateFormat dateFromString:dateStr];  

    // Convert date object to desired output format
    [dateFormat setDateFormat:@"EEE, MMM d YYYY"]; // Change format base on your output requirement
    dateStr = [dateFormat stringFromDate:date];
    NSLog(@"Date -- %@",dateStr);
    [dateFormat release];