dateFromString在ios中正常工作

时间:2013-03-08 09:25:50

标签: ios objective-c nsdate nsdateformatter

我已成功使用此代码从字符串转换日期。

 NSDateFormatter *df=[[NSDateFormatter alloc]init];

    [df setDateFormat:@"dd/MM/yyyy HH:mm:ss"];
    [df setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];

    NSString *strDate = [NSString stringWithFormat:@"%@", [unsortedArray objectAtIndex:i]];
    NSDate *date =[df dateFromString:strDate];

此处,unsortedArray是日期数组。

我可以使用NSDateFormatter作为日期格式。

但是在这里,我无法以@"dd/MM/yyyy HH:mm:ss"格式获取日期。

我可以用这种格式获取日期: 2013-03-08 09:07:16 +0000

那么我如何以下列格式获取日期:@"dd/MM/yyyy HH:mm:ss"

2 个答案:

答案 0 :(得分:1)

您在帖子中编写的代码片段主要用于解析字符串以在日期(NSDate *date =[df dateFromString:strDate];

中转换它

因此,如果strDate是“08/03/2013 10:28:30”,您将拥有代表这个好日期的NSDate。

NSDate没有格式化,因为这不是他的责任。

如果你想要一个字符串格式的日期,如08/03/2013 10:28:30,这段代码将帮助你:

NSDateFormatter *df=[[NSDateFormatter alloc]init];

[df setDateFormat:@"dd/MM/yyyy HH:mm:ss"];
[df setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];

NSString stringFormattedDate = [df stringFromDate:[NSDate date]];

stringFormattedDate的日期格式正确;)

答案 1 :(得分:0)

试试这个,

    NSString *departTimeDate = @"2013-03-08 09:07:16 +0000";

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy'-'MM'-'dd  HH':'mm':'ss ZZZZ"];
    NSDate *date = [dateFormatter dateFromString:departTimeDate];
    [dateFormatter setDateFormat:@"dd/MM/yyyy HH:mm:ss"];
    [dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];

    NSLog(@"Expected Result___ %@",[dateFormatter stringFromDate:date]);