0

我从 xml 文件中解析日期并将其存储在一个字符串变量中,如下所示:

NSString *dateTex = [[stories objectAtIndex: storyIndex] objectForKey: @"date"];

当我尝试在控制台上打印此变量时,我得到:

对象值为:Fri, 01 Jun 2012 15:52:00 GMT

我正在尝试更改上述日期的格式,以再次存储在字符串变量中,但如下所示:dd/mm/yy。我试过这段代码:

//changing dates format
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"EEE, d MMM YYYY HH:mm:ss Z"];

NSDate *date = [dateFormatter dateFromString:dateTex];
[dateFormatter release];

NSDateFormatter *dateFormatter2 = [[NSDateFormatter alloc] init];
[dateFormatter2 setDateFormat:@"dd/mm/yyyy"];
NSString *dateText = [dateFormatter2 stringFromDate:date];
[dateFormatter2 release];
NSLog(@"the object value is:%@",dateText);

但是当我在控制台上打印 dateText 变量时,我得到:

对象值为:(null)

我在做什么错并且日期从未存储在变量中?谢谢!

4

3 回答 3

0

可能你解析格式是错误的。检查 NSDate* 日期是否正确填写。

也许你需要另一个 d,因为你得到了前导零的一天。
试试:EEE, dd MMM YYYY HH:mm:ss Z

于 2012-06-04T09:51:01.283 回答
0

您的第一个 dateformatter 的日期格式是错误的。应该是 [dateFormatter setDateFormat:@"EEE, dd MMM YYYY HH:mm:ss Z"];

希望这可以帮助。

于 2012-06-04T09:54:48.633 回答
0

试试这个,(setDateFormat换行)。

    //changing dates format
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"]; // changed line in your code

    NSDate *date = [dateFormatter dateFromString:dateTex];
    [dateFormatter release];

    NSDateFormatter *dateFormatter2 = [[NSDateFormatter alloc] init];
    [dateFormatter2 setDateFormat:@"dd/MM/yyyy"]; // changed line in your code
    NSString *dateText = [dateFormatter2 stringFromDate:date];
    [dateFormatter2 release];
    NSLog(@"the object value is:%@",dateText);

日历年使用:'yyyy',月份使用:'MM'

于 2012-06-04T10:21:37.537 回答