2013-03-08 44 views
-2

我已經用此代碼成功地將字符串中的日期進行了轉換。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

回答

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

的一段代碼,你已經在你的文章寫主要是爲解析字符串,它轉換成一個日期(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

相關問題