dateFromString在ios中正常工作

问题描述:

我已经用此代码成功地将字符串中的日期进行了转换。dateFromString在ios中正常工作

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年3月8日9时07分16秒+0000

所以,我怎么能在以下格式获取日期:@"dd/MM/yyyy HH:mm:ss"

+2

与往常一样,你使用'NSLog'记录日期,你得到'2013-03-08 09:07:16 + 0000',你认为它的格式不正确,不是吗? – Sulthan 2013-03-08 09:39:12

试试这个,

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]); 

的一段代码,你已经在你的文章写主要是为解析字符串,它转换成一个日期(NSDate *date =[df dateFromString:strDate];

所以,如果strDate是“ 08/03/2013 10:28:30“,你会有一个代表这个好日子的NSDate。

NSDate未格式化,因为它不是他的责任。

如果你想有一个字符串格式化的日期像2013年8月3日十时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将在良好的日期格式;)

+0

他在[unsortedArray objectAtIndex:i]数组中有日期所以这没有任何意义使用[NSDate日期] – 2013-03-08 09:35:49

+0

'[unsortedArray objectAtIndex:i]'似乎包含NSString对象...可能是我错了,但没有在这一点上更多的解释,如果你用数组的对象替换'[NSDate date]',这是一个错误... – 2013-03-08 10:38:24