我们得到字符串表单Web服务的字符串如何将NsString转换为NSDate的目标c?
问题描述:
我已经试过这样我们得到字符串表单Web服务的字符串如何将NsString转换为NSDate的目标c?
cell.msgid.text=[[tableArray objectAtIndex:indexPath.row]objectForKey:@"MobileMessageMasterId"];
NSString *datefromweb= [[tableArray objectAtIndex:indexPath.row] objectForKey:@"MessageDateTime"];
NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init];
[dateformatter setDateFormat:@"dd/MM/yyyy hh:mm:ss"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateformatter dateFromString:datefromweb];
[dateformatter setDateFormat:@"MMM yyyy"];
NSString *month1 = [dateformatter stringFromDate:dateFromString];
[dateformatter setDateFormat:@"hh:mm a"];
NSString *time= [dateformatter stringFromDate:dateFromString];
[dateformatter setDateFormat:@"dd"];
NSString *day1= [dateformatter stringFromDate:dateFromString];
我们得到datefromweb字符串(的NSString)变量,但在 datefromstring(的NSDate)变量没有得到,我分离出的日期,时间,一个月,年。
我的反应是
{ MessageDateTime = "19/01/2016 14:16:03";}
答
尝试这样的:
NSString *yourString = @""; // use your string here where you will get from JSON
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setTimeZone:[NSTimeZone localTimeZone]]; // Set timezone whatever you want
[formatter setDateFormat:@"dd/MM/yyyy HH:mm:ss"];
NSDate *convertedDate = [formatter dateFromString:yourString];
NSLog(@"%@",convertedDate);
答
//Get Date string from web
NSString *datefromweb= @"19/01/2016 14:16:03";
//Set Date Formatter
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"dd/MM/yyyy HH:mm:ss"];
//Convert string into Date
NSDate *selectedDate = [df dateFromString: datefromweb];
//For Setting new format to NSDate need to create new NSDateFormatter.
NSDateFormatter *df1 = [[NSDateFormatter alloc] init];
[df1 setDateFormat:@"dd"];
NSString* myDayString = [df1 stringFromDate:selectedDate];
[df1 setDateFormat:@"MMM"];
NSString* myMonthString = [df1 stringFromDate:selectedDate];
[df1 setDateFormat:@"MM"];
NSString* myMonthString1 = [df1 stringFromDate:selectedDate];
[df1 setDateFormat:@"yyyy"];
NSString* myYearString = [df1 stringFromDate:selectedDate];
[df1 setDateFormat:@"hh:mm a"];
NSString* myTimeString = [df1 stringFromDate:selectedDate];
输出:
Date 19
Month Name Jan - 01
Year 2016
Time 02:16 PM
答
使用NSDateComponents是更好的方法
NSDateFormatter *formatter = [NSDateFormatter new];
[formatter setDateFormat:@"dd/mm/yyyy HH:mm:ss"];
NSDate *date = [formatter dateFromString:@"19/01/2016 14:16:03"];
NSCalendar *gregorian = [NSCalendar currentCalendar];
NSDateComponents *comonents =
[gregorian 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];
'NSDate * dateFromString = [[NSDate alloc] init];''dateFromString = [dateformatter dateFromString:...];'那里是无用的alloc/init。你需要更具体,但是在没有价值的情况下显示/调试你自己。我猜 ? 'dateFromString'是'nil',所以下面所有的结果都会混淆。这是因为小时格式:'hh'和'HH'。这是导致所有其他人无法工作的第一个问题。 – Larme
解释你为什么投票@ downvoter –