Ios 转换后,NSDate的日期为空
我需要将字符串转换为日期,然后将其预设在UILabel中。当我像下面这样做时,我得到空字符串,UILabel也是空的。这个代码有什么问题Ios 转换后,NSDate的日期为空,ios,nsdateformatter,Ios,Nsdateformatter,我需要将字符串转换为日期,然后将其预设在UILabel中。当我像下面这样做时,我得到空字符串,UILabel也是空的。这个代码有什么问题 NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"MMMM dd, YYYY HH:mm:ss"]; NSDate *dateFromString; dateFromString = [dateFormat dateFrom
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMMM dd, YYYY HH:mm:ss"];
NSDate *dateFromString;
dateFromString = [dateFormat dateFromString:[tmpDevice valueForKey:@"date"]]; //This string is from array of object and is not null
NSString *stringFromDate = [dateFormat stringFromDate:dateFromString];
NSLog(@"%@", stringFromDate); // here is null
[cell.dateOfAddedCell setText: stringFromDate]; // and here also is null
根据您的注释,您有一个表示毫秒的字符串。首先需要将该字符串转换为
NSDate
。然后可以将NSDate
格式化为所需字符串
你忽略了提到你的价值的时代,但它似乎是基于标准的1970年1月1日的时代
NSString *millisString = tmpDevice[@"data"];
NSTimeInterval seconds = [miliisString doubleValue] / 1000;
NSDate *date = [NSDate dateWithTimeIntervalSince1970:seconds];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMMM dd, yyyy HH:mm:ss"]; // notice is yyyy, not YYYY
NSString *stringFromDate = [dateFormat stringFromDate:date];
NSLog(@"%@", stringFromDate);
cell.dateOfAddedCell.text = stringFromDate;
尝试替换此行: dateFromString=[dateFormat dateFromString:[tmpDevice valueForKey:@“date”] 比如: dateFromString=[NSDate DateWithTimeIntervalencesince1970:[(NSNumber*)[tmpDevice valueForKey:@“date”]intValue]] 您的代码不起作用,因为[tmpDevice valueForKey:@“date”]应返回如下内容: @“2014年5月25日19:30:00” 但不是: 1406141698811 如果您希望使用该方法: dateFromString
希望它有意义您能告诉我们什么是
[tmpDevice valueForKey:@“date”]
吗?将字符串转换为日期,然后将日期转换回相同的字符串有什么意义?这似乎毫无意义。旁注-不要使用年YYYY
,使用年yyy
。空值不表示解析字符串时出错吗?这是以毫秒为单位的字符串日期:1406141698811@OwenHartnett没有错误