试图在iOS上更改日期格式

时间:2012-06-04 09:44:51

标签: ios date format

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

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

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

对象值为:星期五,2012年6月1日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)

我做错了什么,日期永远不会存储在变量中? 谢谢!

3 个答案:

答案 0 :(得分:0)

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

也许你需要另一个d,因为你获得了领先零的那一天。
尝试:EEE, dd MMM YYYY HH:mm:ss Z

答案 1 :(得分:0)

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

希望这有帮助。

答案 2 :(得分: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'