2017-04-20 14 views
1

我想分离出日月年的时间我将如何做如何转换此日期2016年11月21日1:53 PM在目标c中使用NSDate格式化程序?

NSString *datefromweb = [[tableArray objectAtIndex:indexPath.row ] objectForKey:@"ContentDateTime"]; 

NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init]; 
[dateformatter setDateFormat:@"dd MMM yyyy HH:mm"]; 

NSDate *date1 = [[NSDate alloc] init]; 
date1 = [dateformatter dateFromString:datefromweb]; 
NSLog(@"date1=%@",date1); 
[dateformatter setDateFormat:@"MMM yyyy"]; 

NSString *month1 = [dateformatter stringFromDate:date1]; 
[dateformatter setDateFormat:@"hh:mm a"]; 

NSString *time= [dateformatter stringFromDate:date1]; 
[dateformatter setDateFormat:@"dd"]; 

NSString *day1= [dateformatter stringFromDate:date1]; 

    cell.day.text=day1; 
    cell.monthYear.text=month1; 
    cell.ldatetime.text=time; 

我们得到datefromweb(的NSString)可变的字符串,但在datefromstring(NSDate的)可变不了,我分离出日期,时间,一个月,年。

my response is {ContentDateTime = "02 Jul 2016 5:12PM";} 
+0

这可能是最好的,如果你使用标准的时间戳格式 - 你不包括时区? –

+0

'dd MMM yyyy HH:mm'不匹配'2016年7月2日17:12'。那么,对于日,月和年来说,似乎是这样,但不是以小时/分钟为单位。所以'date1'应该是零。所以没有什么应该工作。你以后写了'hh:mm a',所以你知道如何获得AM/PM,不是吗?所以好的格式就像'dd MMM yyyy hh:mm a'。 – Larme

回答

0

使用NSDateComponents。试试这个代码

NSDateFormatter *formatter = [NSDateFormatter new]; 
[formatter setDateFormat:@"dd MMM yyyy hh:mma"]; 
NSDate *date = [formatter dateFromString:@"02 Jul 2016 5:12PM"]; 
NSCalendar *cal = [NSCalendar currentCalendar]; 
NSDateComponents *comonents = 
[cal components:(NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond 
         ) fromDate:date]; 
NSInteger day = [comonents day]; 
NSInteger month = [comonents month]; 
NSInteger year = [comonents year]; 
NSInteger hour = [comonents hour]; 
NSInteger minutes = [comonents minute]; 
NSInteger seconds = [comonents second]; 
0

我经历了你的代码对于迟到的答案抱歉。只需更改日期格式。

NSDateFormatter *formatter = [NSDateFormatter new]; 
[formatter setDateFormat"dd MMM yyyy hh:mma"]; 
相关问题